Add blackfin supprt from Alexandre Keunecke.
This commit is contained in:
@@ -17,3 +17,4 @@ darwin-missing-semi
|
||||
xcode-improvements
|
||||
update-disty
|
||||
v3_0_11
|
||||
bfin
|
||||
|
||||
0
.pc/bfin/.timestamp
Normal file
0
.pc/bfin/.timestamp
Normal file
5060
.pc/bfin/ChangeLog
Normal file
5060
.pc/bfin/ChangeLog
Normal file
File diff suppressed because it is too large
Load Diff
205
.pc/bfin/Makefile.am
Normal file
205
.pc/bfin/Makefile.am
Normal file
@@ -0,0 +1,205 @@
|
||||
## Process this with automake to create Makefile.in
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign subdir-objects
|
||||
|
||||
SUBDIRS = include testsuite man
|
||||
|
||||
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
||||
src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
|
||||
src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
|
||||
src/avr32/ffi.c src/avr32/sysv.S src/avr32/ffitarget.h \
|
||||
src/cris/ffi.c src/cris/sysv.S src/cris/ffitarget.h \
|
||||
src/ia64/ffi.c src/ia64/ffitarget.h src/ia64/ia64_flags.h \
|
||||
src/ia64/unix.S src/mips/ffi.c src/mips/n32.S src/mips/o32.S \
|
||||
src/mips/ffitarget.h src/m32r/ffi.c src/m32r/sysv.S \
|
||||
src/m32r/ffitarget.h src/m68k/ffi.c src/m68k/sysv.S \
|
||||
src/m68k/ffitarget.h src/powerpc/ffi.c src/powerpc/sysv.S \
|
||||
src/powerpc/linux64.S src/powerpc/linux64_closure.S \
|
||||
src/powerpc/ppc_closure.S src/powerpc/asm.h src/powerpc/aix.S \
|
||||
src/powerpc/darwin.S src/powerpc/aix_closure.S \
|
||||
src/powerpc/darwin_closure.S src/powerpc/ffi_darwin.c \
|
||||
src/powerpc/ffitarget.h src/s390/ffi.c src/s390/sysv.S \
|
||||
src/s390/ffitarget.h src/sh/ffi.c src/sh/sysv.S \
|
||||
src/sh/ffitarget.h src/sh64/ffi.c src/sh64/sysv.S \
|
||||
src/sh64/ffitarget.h src/sparc/v8.S src/sparc/v9.S \
|
||||
src/sparc/ffitarget.h src/sparc/ffi.c src/x86/darwin64.S \
|
||||
src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/darwin.S \
|
||||
src/x86/win64.S src/x86/freebsd.S src/x86/ffi64.c \
|
||||
src/x86/unix64.S src/x86/ffitarget.h src/pa/ffitarget.h \
|
||||
src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S src/frv/ffi.c \
|
||||
src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
||||
src/moxie/ffi.c src/moxie/eabi.S libtool-version \
|
||||
ChangeLog.libffi m4/libtool.m4 m4/lt~obsolete.m4 \
|
||||
m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
|
||||
m4/ltversion.m4 src/arm/gentramp.sh src/debug.c \
|
||||
msvcc.sh generate-ios-source-and-headers.py \
|
||||
generate-osx-source-and-headers.py \
|
||||
libffi.xcodeproj/project.pbxproj \
|
||||
src/arm/trampoline.S
|
||||
|
||||
info_TEXINFOS = doc/libffi.texi
|
||||
|
||||
## ################################################################
|
||||
|
||||
##
|
||||
## This section is for make and multilib madness.
|
||||
##
|
||||
|
||||
# Work around what appears to be a GNU make bug handling MAKEFLAGS
|
||||
# values defined in terms of make variables, as is the case for CC and
|
||||
# friends when we are called from the top level Makefile.
|
||||
AM_MAKEFLAGS = \
|
||||
"AR_FLAGS=$(AR_FLAGS)" \
|
||||
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
|
||||
"CFLAGS=$(CFLAGS)" \
|
||||
"CXXFLAGS=$(CXXFLAGS)" \
|
||||
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
|
||||
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||
"INSTALL=$(INSTALL)" \
|
||||
"INSTALL_DATA=$(INSTALL_DATA)" \
|
||||
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
||||
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
|
||||
"JC1FLAGS=$(JC1FLAGS)" \
|
||||
"LDFLAGS=$(LDFLAGS)" \
|
||||
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
|
||||
"MAKE=$(MAKE)" \
|
||||
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
|
||||
"PICFLAG=$(PICFLAG)" \
|
||||
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
|
||||
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
||||
"SHELL=$(SHELL)" \
|
||||
"exec_prefix=$(exec_prefix)" \
|
||||
"infodir=$(infodir)" \
|
||||
"libdir=$(libdir)" \
|
||||
"mandir=$(mandir)" \
|
||||
"prefix=$(prefix)" \
|
||||
"AR=$(AR)" \
|
||||
"AS=$(AS)" \
|
||||
"CC=$(CC)" \
|
||||
"CXX=$(CXX)" \
|
||||
"LD=$(LD)" \
|
||||
"NM=$(NM)" \
|
||||
"RANLIB=$(RANLIB)" \
|
||||
"DESTDIR=$(DESTDIR)"
|
||||
|
||||
MAKEOVERRIDES=
|
||||
|
||||
ACLOCAL_AMFLAGS=$(ACLOCAL_AMFLAGS) -I m4
|
||||
|
||||
lib_LTLIBRARIES = libffi.la
|
||||
noinst_LTLIBRARIES = libffi_convenience.la
|
||||
|
||||
libffi_la_SOURCES = src/prep_cif.c src/types.c \
|
||||
src/raw_api.c src/java_raw_api.c src/closures.c
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libffi.pc
|
||||
|
||||
nodist_libffi_la_SOURCES =
|
||||
|
||||
if FFI_DEBUG
|
||||
nodist_libffi_la_SOURCES += src/debug.c
|
||||
endif
|
||||
|
||||
if MIPS
|
||||
nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
|
||||
endif
|
||||
if X86
|
||||
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S
|
||||
endif
|
||||
if X86_FREEBSD
|
||||
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/freebsd.S
|
||||
endif
|
||||
if X86_WIN32
|
||||
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
|
||||
endif
|
||||
if X86_WIN64
|
||||
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win64.S
|
||||
endif
|
||||
if X86_DARWIN
|
||||
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||
endif
|
||||
if SPARC
|
||||
nodist_libffi_la_SOURCES += src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
|
||||
endif
|
||||
if ALPHA
|
||||
nodist_libffi_la_SOURCES += src/alpha/ffi.c src/alpha/osf.S
|
||||
endif
|
||||
if IA64
|
||||
nodist_libffi_la_SOURCES += src/ia64/ffi.c src/ia64/unix.S
|
||||
endif
|
||||
if M32R
|
||||
nodist_libffi_la_SOURCES += src/m32r/sysv.S src/m32r/ffi.c
|
||||
endif
|
||||
if M68K
|
||||
nodist_libffi_la_SOURCES += src/m68k/ffi.c src/m68k/sysv.S
|
||||
endif
|
||||
if POWERPC
|
||||
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
|
||||
endif
|
||||
if POWERPC_AIX
|
||||
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
|
||||
endif
|
||||
if POWERPC_DARWIN
|
||||
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
|
||||
endif
|
||||
if POWERPC_FREEBSD
|
||||
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
|
||||
endif
|
||||
if ARM
|
||||
nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c
|
||||
if FFI_EXEC_TRAMPOLINE_TABLE
|
||||
nodist_libffi_la_SOURCES += src/arm/trampoline.S
|
||||
endif
|
||||
endif
|
||||
if AVR32
|
||||
nodist_libffi_la_SOURCES += src/avr32/sysv.S src/avr32/ffi.c
|
||||
endif
|
||||
if LIBFFI_CRIS
|
||||
nodist_libffi_la_SOURCES += src/cris/sysv.S src/cris/ffi.c
|
||||
endif
|
||||
if FRV
|
||||
nodist_libffi_la_SOURCES += src/frv/eabi.S src/frv/ffi.c
|
||||
endif
|
||||
if MOXIE
|
||||
nodist_libffi_la_SOURCES += src/moxie/eabi.S src/moxie/ffi.c
|
||||
endif
|
||||
if S390
|
||||
nodist_libffi_la_SOURCES += src/s390/sysv.S src/s390/ffi.c
|
||||
endif
|
||||
if X86_64
|
||||
nodist_libffi_la_SOURCES += src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
|
||||
endif
|
||||
if SH
|
||||
nodist_libffi_la_SOURCES += src/sh/sysv.S src/sh/ffi.c
|
||||
endif
|
||||
if SH64
|
||||
nodist_libffi_la_SOURCES += src/sh64/sysv.S src/sh64/ffi.c
|
||||
endif
|
||||
if PA_LINUX
|
||||
nodist_libffi_la_SOURCES += src/pa/linux.S src/pa/ffi.c
|
||||
endif
|
||||
if PA_HPUX
|
||||
nodist_libffi_la_SOURCES += src/pa/hpux32.S src/pa/ffi.c
|
||||
endif
|
||||
|
||||
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
||||
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||
|
||||
AM_CFLAGS = -g
|
||||
if FFI_DEBUG
|
||||
# Build debug. Define FFI_DEBUG on the commandline so that, when building with
|
||||
# MSVC, it can link against the debug CRT.
|
||||
AM_CFLAGS += -DFFI_DEBUG
|
||||
endif
|
||||
|
||||
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
||||
|
||||
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src -DFFI_BUILDING
|
||||
AM_CCASFLAGS = $(AM_CPPFLAGS) -g
|
||||
|
||||
# No install-html or install-pdf support in automake yet
|
||||
.PHONY: install-html install-pdf
|
||||
install-html:
|
||||
install-pdf:
|
||||
1849
.pc/bfin/Makefile.in
Normal file
1849
.pc/bfin/Makefile.in
Normal file
File diff suppressed because it is too large
Load Diff
17301
.pc/bfin/configure
vendored
Executable file
17301
.pc/bfin/configure
vendored
Executable file
File diff suppressed because it is too large
Load Diff
502
.pc/bfin/configure.ac
Normal file
502
.pc/bfin/configure.ac
Normal file
@@ -0,0 +1,502 @@
|
||||
dnl Process this with autoconf to create configure
|
||||
|
||||
AC_PREREQ(2.68)
|
||||
|
||||
AC_INIT([libffi], [3.0.11], [http://github.com/atgreen/libffi/issues])
|
||||
AC_CONFIG_HEADERS([fficonfig.h])
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
target_alias=${target_alias-$host_alias}
|
||||
|
||||
. ${srcdir}/configure.host
|
||||
|
||||
AX_ENABLE_BUILDDIR
|
||||
|
||||
AM_INIT_AUTOMAKE
|
||||
|
||||
# The same as in boehm-gc and libstdc++. Have to borrow it from there.
|
||||
# We must force CC to /not/ be precious variables; otherwise
|
||||
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
||||
# As a side effect, we have to subst CFLAGS ourselves.
|
||||
# Also save and restore CFLAGS, since AC_PROG_CC will come up with
|
||||
# defaults of its own if none are provided.
|
||||
|
||||
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
||||
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
||||
save_CFLAGS=$CFLAGS
|
||||
AC_PROG_CC
|
||||
CFLAGS=$save_CFLAGS
|
||||
m4_undefine([_AC_ARG_VAR_PRECIOUS])
|
||||
m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
||||
|
||||
AC_SUBST(CFLAGS)
|
||||
|
||||
AM_PROG_AS
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_LIBTOOL
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
AX_CC_MAXOPT
|
||||
AX_CFLAGS_WARN_ALL
|
||||
if test "x$GCC" = "xyes"; then
|
||||
CFLAGS="$CFLAGS -fexceptions"
|
||||
fi
|
||||
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
AC_CHECK_HEADERS(sys/mman.h)
|
||||
AC_CHECK_FUNCS(mmap)
|
||||
AC_FUNC_MMAP_BLACKLIST
|
||||
|
||||
dnl The -no-testsuite modules omit the test subdir.
|
||||
AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
|
||||
|
||||
TARGETDIR="unknown"
|
||||
case "$host" in
|
||||
alpha*-*-*)
|
||||
TARGET=ALPHA; TARGETDIR=alpha;
|
||||
# Support 128-bit long double, changeable via command-line switch.
|
||||
HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
|
||||
;;
|
||||
|
||||
arm*-*-*)
|
||||
TARGET=ARM; TARGETDIR=arm
|
||||
;;
|
||||
|
||||
amd64-*-freebsd* | amd64-*-openbsd*)
|
||||
TARGET=X86_64; TARGETDIR=x86
|
||||
;;
|
||||
|
||||
amd64-*-freebsd*)
|
||||
TARGET=X86_64; TARGETDIR=x86
|
||||
;;
|
||||
|
||||
avr32*-*-*)
|
||||
TARGET=AVR32; TARGETDIR=avr32
|
||||
;;
|
||||
|
||||
cris-*-*)
|
||||
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||
;;
|
||||
|
||||
frv-*-*)
|
||||
TARGET=FRV; TARGETDIR=frv
|
||||
;;
|
||||
|
||||
hppa*-*-linux* | parisc*-*-linux* | hppa*-*-openbsd*)
|
||||
TARGET=PA_LINUX; TARGETDIR=pa
|
||||
;;
|
||||
hppa*64-*-hpux*)
|
||||
TARGET=PA64_HPUX; TARGETDIR=pa
|
||||
;;
|
||||
hppa*-*-hpux*)
|
||||
TARGET=PA_HPUX; TARGETDIR=pa
|
||||
;;
|
||||
|
||||
i?86-*-freebsd* | i?86-*-openbsd*)
|
||||
TARGET=X86_FREEBSD; TARGETDIR=x86
|
||||
;;
|
||||
i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix*)
|
||||
TARGET=X86_WIN32; TARGETDIR=x86
|
||||
# All mingw/cygwin/win32 builds require -no-undefined for sharedlib.
|
||||
# We must also check with_cross_host to decide if this is a native
|
||||
# or cross-build and select where to install dlls appropriately.
|
||||
if test -n "$with_cross_host" &&
|
||||
test x"$with_cross_host" != x"no"; then
|
||||
AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"';
|
||||
else
|
||||
AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
|
||||
fi
|
||||
;;
|
||||
i?86-*-darwin*)
|
||||
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||
;;
|
||||
i?86-*-solaris2.1[[0-9]]*)
|
||||
TARGET=X86_64; TARGETDIR=x86
|
||||
;;
|
||||
i?86-*-*)
|
||||
TARGET=X86_64; TARGETDIR=x86
|
||||
;;
|
||||
|
||||
ia64*-*-*)
|
||||
TARGET=IA64; TARGETDIR=ia64
|
||||
;;
|
||||
|
||||
m32r*-*-*)
|
||||
TARGET=M32R; TARGETDIR=m32r
|
||||
;;
|
||||
|
||||
m68k-*-*)
|
||||
TARGET=M68K; TARGETDIR=m68k
|
||||
;;
|
||||
|
||||
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
|
||||
TARGET=MIPS; TARGETDIR=mips
|
||||
;;
|
||||
mips*-*-linux* | mips*-*-openbsd*)
|
||||
# Support 128-bit long double for NewABI.
|
||||
HAVE_LONG_DOUBLE='defined(__mips64)'
|
||||
TARGET=MIPS; TARGETDIR=mips
|
||||
;;
|
||||
|
||||
moxie-*-*)
|
||||
TARGET=MOXIE; TARGETDIR=moxie
|
||||
;;
|
||||
|
||||
powerpc*-*-linux* | powerpc-*-sysv*)
|
||||
TARGET=POWERPC; TARGETDIR=powerpc
|
||||
;;
|
||||
powerpc-*-amigaos*)
|
||||
TARGET=POWERPC; TARGETDIR=powerpc
|
||||
;;
|
||||
powerpc-*-beos*)
|
||||
TARGET=POWERPC; TARGETDIR=powerpc
|
||||
;;
|
||||
powerpc-*-darwin* | powerpc64-*-darwin*)
|
||||
TARGET=POWERPC_DARWIN; TARGETDIR=powerpc
|
||||
;;
|
||||
powerpc-*-aix* | rs6000-*-aix*)
|
||||
TARGET=POWERPC_AIX; TARGETDIR=powerpc
|
||||
;;
|
||||
powerpc-*-freebsd* | powerpc-*-openbsd*)
|
||||
TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
|
||||
;;
|
||||
powerpc64-*-freebsd*)
|
||||
TARGET=POWERPC; TARGETDIR=powerpc
|
||||
;;
|
||||
powerpc*-*-rtems*)
|
||||
TARGET=POWERPC; TARGETDIR=powerpc
|
||||
;;
|
||||
|
||||
s390-*-* | s390x-*-*)
|
||||
TARGET=S390; TARGETDIR=s390
|
||||
;;
|
||||
|
||||
sh-*-* | sh[[34]]*-*-*)
|
||||
TARGET=SH; TARGETDIR=sh
|
||||
;;
|
||||
sh64-*-* | sh5*-*-*)
|
||||
TARGET=SH64; TARGETDIR=sh64
|
||||
;;
|
||||
|
||||
sparc*-*-*)
|
||||
TARGET=SPARC; TARGETDIR=sparc
|
||||
;;
|
||||
|
||||
x86_64-*-darwin*)
|
||||
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||
;;
|
||||
|
||||
x86_64-*-cygwin* | x86_64-*-mingw*)
|
||||
TARGET=X86_WIN64; TARGETDIR=x86
|
||||
# All mingw/cygwin/win32 builds require -no-undefined for sharedlib.
|
||||
# We must also check with_cross_host to decide if this is a native
|
||||
# or cross-build and select where to install dlls appropriately.
|
||||
if test -n "$with_cross_host" &&
|
||||
test x"$with_cross_host" != x"no"; then
|
||||
AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"';
|
||||
else
|
||||
AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
|
||||
fi
|
||||
;;
|
||||
|
||||
x86_64-*-*)
|
||||
TARGET=X86_64; TARGETDIR=x86
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(AM_RUNTESTFLAGS)
|
||||
AC_SUBST(AM_LTLDFLAGS)
|
||||
|
||||
if test $TARGETDIR = unknown; then
|
||||
AC_MSG_ERROR(["libffi has not been ported to $host."])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
|
||||
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
||||
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
||||
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
||||
AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
|
||||
AM_CONDITIONAL(X86_WIN64, test x$TARGET = xX86_WIN64)
|
||||
AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
|
||||
AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
|
||||
AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
|
||||
AM_CONDITIONAL(M32R, test x$TARGET = xM32R)
|
||||
AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
|
||||
AM_CONDITIONAL(MOXIE, test x$TARGET = xMOXIE)
|
||||
AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
|
||||
AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
|
||||
AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
|
||||
AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
|
||||
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
|
||||
AM_CONDITIONAL(AVR32, test x$TARGET = xAVR32)
|
||||
AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
|
||||
AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
|
||||
AM_CONDITIONAL(S390, test x$TARGET = xS390)
|
||||
AM_CONDITIONAL(X86_64, test x$TARGET = xX86_64)
|
||||
AM_CONDITIONAL(SH, test x$TARGET = xSH)
|
||||
AM_CONDITIONAL(SH64, test x$TARGET = xSH64)
|
||||
AM_CONDITIONAL(PA_LINUX, test x$TARGET = xPA_LINUX)
|
||||
AM_CONDITIONAL(PA_HPUX, test x$TARGET = xPA_HPUX)
|
||||
AM_CONDITIONAL(PA64_HPUX, test x$TARGET = xPA64_HPUX)
|
||||
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_FUNCS(memcpy)
|
||||
AC_FUNC_ALLOCA
|
||||
|
||||
AC_CHECK_SIZEOF(double)
|
||||
AC_CHECK_SIZEOF(long double)
|
||||
|
||||
# Also AC_SUBST this variable for ffi.h.
|
||||
if test -z "$HAVE_LONG_DOUBLE"; then
|
||||
HAVE_LONG_DOUBLE=0
|
||||
if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
|
||||
if test $ac_cv_sizeof_long_double != 0; then
|
||||
HAVE_LONG_DOUBLE=1
|
||||
AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(HAVE_LONG_DOUBLE)
|
||||
|
||||
AC_C_BIGENDIAN
|
||||
|
||||
GCC_AS_CFI_PSEUDO_OP
|
||||
|
||||
if test x$TARGET = xSPARC; then
|
||||
AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
|
||||
libffi_cv_as_sparc_ua_pcrel, [
|
||||
save_CFLAGS="$CFLAGS"
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
CFLAGS="$CFLAGS -fpic"
|
||||
LDFLAGS="$LDFLAGS -shared"
|
||||
AC_TRY_LINK([asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");],,
|
||||
[libffi_cv_as_sparc_ua_pcrel=yes],
|
||||
[libffi_cv_as_sparc_ua_pcrel=no])
|
||||
CFLAGS="$save_CFLAGS"
|
||||
LDFLAGS="$save_LDFLAGS"])
|
||||
if test "x$libffi_cv_as_sparc_ua_pcrel" = xyes; then
|
||||
AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
|
||||
[Define if your assembler and linker support unaligned PC relative relocs.])
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([assembler .register pseudo-op support],
|
||||
libffi_cv_as_register_pseudo_op, [
|
||||
libffi_cv_as_register_pseudo_op=unknown
|
||||
# Check if we have .register
|
||||
AC_TRY_COMPILE([asm (".register %g2, #scratch");],,
|
||||
[libffi_cv_as_register_pseudo_op=yes],
|
||||
[libffi_cv_as_register_pseudo_op=no])
|
||||
])
|
||||
if test "x$libffi_cv_as_register_pseudo_op" = xyes; then
|
||||
AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
|
||||
[Define if your assembler supports .register.])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then
|
||||
AC_CACHE_CHECK([assembler supports pc related relocs],
|
||||
libffi_cv_as_x86_pcrel, [
|
||||
libffi_cv_as_x86_pcrel=yes
|
||||
echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
|
||||
if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then
|
||||
libffi_cv_as_x86_pcrel=no
|
||||
fi
|
||||
])
|
||||
if test "x$libffi_cv_as_x86_pcrel" = xyes; then
|
||||
AC_DEFINE(HAVE_AS_X86_PCREL, 1,
|
||||
[Define if your assembler supports PC relative relocs.])
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([assembler .ascii pseudo-op support],
|
||||
libffi_cv_as_ascii_pseudo_op, [
|
||||
libffi_cv_as_ascii_pseudo_op=unknown
|
||||
# Check if we have .ascii
|
||||
AC_TRY_COMPILE([asm (".ascii \\"string\\"");],,
|
||||
[libffi_cv_as_ascii_pseudo_op=yes],
|
||||
[libffi_cv_as_ascii_pseudo_op=no])
|
||||
])
|
||||
if test "x$libffi_cv_as_ascii_pseudo_op" = xyes; then
|
||||
AC_DEFINE(HAVE_AS_ASCII_PSEUDO_OP, 1,
|
||||
[Define if your assembler supports .ascii.])
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([assembler .string pseudo-op support],
|
||||
libffi_cv_as_string_pseudo_op, [
|
||||
libffi_cv_as_string_pseudo_op=unknown
|
||||
# Check if we have .string
|
||||
AC_TRY_COMPILE([asm (".string \\"string\\"");],,
|
||||
[libffi_cv_as_string_pseudo_op=yes],
|
||||
[libffi_cv_as_string_pseudo_op=no])
|
||||
])
|
||||
if test "x$libffi_cv_as_string_pseudo_op" = xyes; then
|
||||
AC_DEFINE(HAVE_AS_STRING_PSEUDO_OP, 1,
|
||||
[Define if your assembler supports .string.])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test x$TARGET = xX86_WIN64; then
|
||||
LT_SYS_SYMBOL_USCORE
|
||||
if test "x$sys_symbol_underscore" = xyes; then
|
||||
AC_DEFINE(SYMBOL_UNDERSCORE, 1, [Define if symbols are underscored.])
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
FFI_EXEC_TRAMPOLINE_TABLE=0
|
||||
case "$target" in
|
||||
*arm*-apple-darwin*)
|
||||
FFI_EXEC_TRAMPOLINE_TABLE=1
|
||||
AC_DEFINE(FFI_EXEC_TRAMPOLINE_TABLE, 1,
|
||||
[Cannot use PROT_EXEC on this target, so, we revert to
|
||||
alternative means])
|
||||
;;
|
||||
*-apple-darwin1[[10]]* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris*)
|
||||
AC_DEFINE(FFI_MMAP_EXEC_WRIT, 1,
|
||||
[Cannot use malloc on this target, so, we revert to
|
||||
alternative means])
|
||||
;;
|
||||
esac
|
||||
AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1)
|
||||
AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE)
|
||||
|
||||
if test x$TARGET = xX86_64; then
|
||||
AC_CACHE_CHECK([assembler supports unwind section type],
|
||||
libffi_cv_as_x86_64_unwind_section_type, [
|
||||
libffi_cv_as_x86_64_unwind_section_type=yes
|
||||
echo '.section .eh_frame,"a",@unwind' > conftest.s
|
||||
if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
||||
libffi_cv_as_x86_64_unwind_section_type=no
|
||||
fi
|
||||
])
|
||||
if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
|
||||
AC_DEFINE(HAVE_AS_X86_64_UNWIND_SECTION_TYPE, 1,
|
||||
[Define if your assembler supports unwind section type.])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$GCC" = "xyes"; then
|
||||
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
|
||||
libffi_cv_ro_eh_frame, [
|
||||
libffi_cv_ro_eh_frame=no
|
||||
echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
|
||||
if $CC $CFLAGS -S -fpic -fexceptions -o conftest.s conftest.c > /dev/null 2>&1; then
|
||||
if grep '.section.*eh_frame.*"a"' conftest.s > /dev/null; then
|
||||
libffi_cv_ro_eh_frame=yes
|
||||
elif grep '.section.*eh_frame.*#alloc' conftest.c \
|
||||
| grep -v '#write' > /dev/null; then
|
||||
libffi_cv_ro_eh_frame=yes
|
||||
fi
|
||||
fi
|
||||
rm -f conftest.*
|
||||
])
|
||||
if test "x$libffi_cv_ro_eh_frame" = xyes; then
|
||||
AC_DEFINE(HAVE_RO_EH_FRAME, 1,
|
||||
[Define if .eh_frame sections should be read-only.])
|
||||
AC_DEFINE(EH_FRAME_FLAGS, "a",
|
||||
[Define to the flags needed for the .section .eh_frame directive. ])
|
||||
else
|
||||
AC_DEFINE(EH_FRAME_FLAGS, "aw",
|
||||
[Define to the flags needed for the .section .eh_frame directive. ])
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([for __attribute__((visibility("hidden")))],
|
||||
libffi_cv_hidden_visibility_attribute, [
|
||||
echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1 ; }' > conftest.c
|
||||
libffi_cv_hidden_visibility_attribute=no
|
||||
if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
|
||||
if grep '\.hidden.*foo' conftest.s >/dev/null; then
|
||||
libffi_cv_hidden_visibility_attribute=yes
|
||||
fi
|
||||
fi
|
||||
rm -f conftest.*
|
||||
])
|
||||
if test $libffi_cv_hidden_visibility_attribute = yes; then
|
||||
AC_DEFINE(HAVE_HIDDEN_VISIBILITY_ATTRIBUTE, 1,
|
||||
[Define if __attribute__((visibility("hidden"))) is supported.])
|
||||
fi
|
||||
fi
|
||||
|
||||
AH_BOTTOM([
|
||||
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
|
||||
#ifdef LIBFFI_ASM
|
||||
#define FFI_HIDDEN(name) .hidden name
|
||||
#else
|
||||
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
|
||||
#endif
|
||||
#else
|
||||
#ifdef LIBFFI_ASM
|
||||
#define FFI_HIDDEN(name)
|
||||
#else
|
||||
#define FFI_HIDDEN
|
||||
#endif
|
||||
#endif
|
||||
])
|
||||
|
||||
AC_SUBST(TARGET)
|
||||
AC_SUBST(TARGETDIR)
|
||||
|
||||
AC_SUBST(SHELL)
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug debugging mode],
|
||||
if test "$enable_debug" = "yes"; then
|
||||
AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
|
||||
fi)
|
||||
AM_CONDITIONAL(FFI_DEBUG, test "$enable_debug" = "yes")
|
||||
|
||||
AC_ARG_ENABLE(structs,
|
||||
[ --disable-structs omit code for struct support],
|
||||
if test "$enable_structs" = "no"; then
|
||||
AC_DEFINE(FFI_NO_STRUCTS, 1, [Define this is you do not want support for aggregate types.])
|
||||
fi)
|
||||
|
||||
AC_ARG_ENABLE(raw-api,
|
||||
[ --disable-raw-api make the raw api unavailable],
|
||||
if test "$enable_raw_api" = "no"; then
|
||||
AC_DEFINE(FFI_NO_RAW_API, 1, [Define this is you do not want support for the raw API.])
|
||||
fi)
|
||||
|
||||
AC_ARG_ENABLE(purify-safety,
|
||||
[ --enable-purify-safety purify-safe mode],
|
||||
if test "$enable_purify_safety" = "yes"; then
|
||||
AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.])
|
||||
fi)
|
||||
|
||||
# These variables are only ever used when we cross-build to X86_WIN32.
|
||||
# And we only support this with GCC, so...
|
||||
if test x"$GCC" != x"no"; then
|
||||
if test -n "$with_cross_host" &&
|
||||
test x"$with_cross_host" != x"no"; then
|
||||
toolexecdir='$(exec_prefix)/$(target_alias)'
|
||||
toolexeclibdir='$(toolexecdir)/lib'
|
||||
else
|
||||
toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
|
||||
toolexeclibdir='$(libdir)'
|
||||
fi
|
||||
multi_os_directory=`$CC -print-multi-os-directory`
|
||||
case $multi_os_directory in
|
||||
.) ;; # Avoid trailing /.
|
||||
*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
|
||||
esac
|
||||
AC_SUBST(toolexecdir)
|
||||
AC_SUBST(toolexeclibdir)
|
||||
fi
|
||||
|
||||
if test "${multilib}" = "yes"; then
|
||||
multilib_arg="--enable-multilib"
|
||||
else
|
||||
multilib_arg=
|
||||
fi
|
||||
|
||||
AC_CONFIG_COMMANDS(include, [test -d include || mkdir include])
|
||||
AC_CONFIG_COMMANDS(src, [
|
||||
test -d src || mkdir src
|
||||
test -d src/$TARGETDIR || mkdir src/$TARGETDIR
|
||||
], [TARGETDIR="$TARGETDIR"])
|
||||
|
||||
AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h)
|
||||
|
||||
AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc)
|
||||
|
||||
AC_OUTPUT
|
||||
0
.pc/bfin/src/bfin/ffi.c
Normal file
0
.pc/bfin/src/bfin/ffi.c
Normal file
0
.pc/bfin/src/bfin/ffitarget.h
Normal file
0
.pc/bfin/src/bfin/ffitarget.h
Normal file
0
.pc/bfin/src/bfin/sysv.S
Normal file
0
.pc/bfin/src/bfin/sysv.S
Normal file
@@ -1,3 +1,11 @@
|
||||
2012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
|
||||
|
||||
* configure.ac: Add Blackfin/sysv support
|
||||
* Makefile.am: Add Blackfin/sysv support
|
||||
* src/bfin/ffi.c: Add Blackfin/sysv support
|
||||
* src/bfin/ffitarget.h: Add Blackfin/sysv support
|
||||
* src/bfin/sysv.S: Add Blackfin/sysv support
|
||||
|
||||
2012-04-11 Anthony Green <green@moxielogic.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Add new script.
|
||||
|
||||
@@ -27,6 +27,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
||||
src/x86/win64.S src/x86/freebsd.S src/x86/ffi64.c \
|
||||
src/x86/unix64.S src/x86/ffitarget.h src/pa/ffitarget.h \
|
||||
src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S src/frv/ffi.c \
|
||||
src/bfin/ffi.c src/bfin/ffitarget.h src/bfin/sysv.S \
|
||||
src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
||||
src/moxie/ffi.c src/moxie/eabi.S libtool-version \
|
||||
ChangeLog.libffi m4/libtool.m4 m4/lt~obsolete.m4 \
|
||||
@@ -105,6 +106,9 @@ endif
|
||||
if MIPS
|
||||
nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
|
||||
endif
|
||||
if BFIN
|
||||
nodist_libffi_la_SOURCES += src/bfin/ffi.c src/bfin/sysv.S
|
||||
endif
|
||||
if X86
|
||||
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S
|
||||
endif
|
||||
|
||||
160
Makefile.in
160
Makefile.in
@@ -38,35 +38,36 @@ host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
@FFI_DEBUG_TRUE@am__append_1 = src/debug.c
|
||||
@MIPS_TRUE@am__append_2 = src/mips/ffi.c src/mips/o32.S src/mips/n32.S
|
||||
@X86_TRUE@am__append_3 = src/x86/ffi.c src/x86/sysv.S
|
||||
@X86_FREEBSD_TRUE@am__append_4 = src/x86/ffi.c src/x86/freebsd.S
|
||||
@X86_WIN32_TRUE@am__append_5 = src/x86/ffi.c src/x86/win32.S
|
||||
@X86_WIN64_TRUE@am__append_6 = src/x86/ffi.c src/x86/win64.S
|
||||
@X86_DARWIN_TRUE@am__append_7 = src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||
@SPARC_TRUE@am__append_8 = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
|
||||
@ALPHA_TRUE@am__append_9 = src/alpha/ffi.c src/alpha/osf.S
|
||||
@IA64_TRUE@am__append_10 = src/ia64/ffi.c src/ia64/unix.S
|
||||
@M32R_TRUE@am__append_11 = src/m32r/sysv.S src/m32r/ffi.c
|
||||
@M68K_TRUE@am__append_12 = src/m68k/ffi.c src/m68k/sysv.S
|
||||
@POWERPC_TRUE@am__append_13 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
|
||||
@POWERPC_AIX_TRUE@am__append_14 = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
|
||||
@POWERPC_DARWIN_TRUE@am__append_15 = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
|
||||
@POWERPC_FREEBSD_TRUE@am__append_16 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
|
||||
@ARM_TRUE@am__append_17 = src/arm/sysv.S src/arm/ffi.c
|
||||
@ARM_TRUE@@FFI_EXEC_TRAMPOLINE_TABLE_TRUE@am__append_18 = src/arm/trampoline.S
|
||||
@AVR32_TRUE@am__append_19 = src/avr32/sysv.S src/avr32/ffi.c
|
||||
@LIBFFI_CRIS_TRUE@am__append_20 = src/cris/sysv.S src/cris/ffi.c
|
||||
@FRV_TRUE@am__append_21 = src/frv/eabi.S src/frv/ffi.c
|
||||
@MOXIE_TRUE@am__append_22 = src/moxie/eabi.S src/moxie/ffi.c
|
||||
@S390_TRUE@am__append_23 = src/s390/sysv.S src/s390/ffi.c
|
||||
@X86_64_TRUE@am__append_24 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
|
||||
@SH_TRUE@am__append_25 = src/sh/sysv.S src/sh/ffi.c
|
||||
@SH64_TRUE@am__append_26 = src/sh64/sysv.S src/sh64/ffi.c
|
||||
@PA_LINUX_TRUE@am__append_27 = src/pa/linux.S src/pa/ffi.c
|
||||
@PA_HPUX_TRUE@am__append_28 = src/pa/hpux32.S src/pa/ffi.c
|
||||
@BFIN_TRUE@am__append_3 = src/bfin/ffi.c src/bfin/sysv.S
|
||||
@X86_TRUE@am__append_4 = src/x86/ffi.c src/x86/sysv.S
|
||||
@X86_FREEBSD_TRUE@am__append_5 = src/x86/ffi.c src/x86/freebsd.S
|
||||
@X86_WIN32_TRUE@am__append_6 = src/x86/ffi.c src/x86/win32.S
|
||||
@X86_WIN64_TRUE@am__append_7 = src/x86/ffi.c src/x86/win64.S
|
||||
@X86_DARWIN_TRUE@am__append_8 = src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||
@SPARC_TRUE@am__append_9 = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
|
||||
@ALPHA_TRUE@am__append_10 = src/alpha/ffi.c src/alpha/osf.S
|
||||
@IA64_TRUE@am__append_11 = src/ia64/ffi.c src/ia64/unix.S
|
||||
@M32R_TRUE@am__append_12 = src/m32r/sysv.S src/m32r/ffi.c
|
||||
@M68K_TRUE@am__append_13 = src/m68k/ffi.c src/m68k/sysv.S
|
||||
@POWERPC_TRUE@am__append_14 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
|
||||
@POWERPC_AIX_TRUE@am__append_15 = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
|
||||
@POWERPC_DARWIN_TRUE@am__append_16 = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
|
||||
@POWERPC_FREEBSD_TRUE@am__append_17 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
|
||||
@ARM_TRUE@am__append_18 = src/arm/sysv.S src/arm/ffi.c
|
||||
@ARM_TRUE@@FFI_EXEC_TRAMPOLINE_TABLE_TRUE@am__append_19 = src/arm/trampoline.S
|
||||
@AVR32_TRUE@am__append_20 = src/avr32/sysv.S src/avr32/ffi.c
|
||||
@LIBFFI_CRIS_TRUE@am__append_21 = src/cris/sysv.S src/cris/ffi.c
|
||||
@FRV_TRUE@am__append_22 = src/frv/eabi.S src/frv/ffi.c
|
||||
@MOXIE_TRUE@am__append_23 = src/moxie/eabi.S src/moxie/ffi.c
|
||||
@S390_TRUE@am__append_24 = src/s390/sysv.S src/s390/ffi.c
|
||||
@X86_64_TRUE@am__append_25 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
|
||||
@SH_TRUE@am__append_26 = src/sh/sysv.S src/sh/ffi.c
|
||||
@SH64_TRUE@am__append_27 = src/sh64/sysv.S src/sh64/ffi.c
|
||||
@PA_LINUX_TRUE@am__append_28 = src/pa/linux.S src/pa/ffi.c
|
||||
@PA_HPUX_TRUE@am__append_29 = src/pa/hpux32.S src/pa/ffi.c
|
||||
# Build debug. Define FFI_DEBUG on the commandline so that, when building with
|
||||
# MSVC, it can link against the debug CRT.
|
||||
@FFI_DEBUG_TRUE@am__append_29 = -DFFI_DEBUG
|
||||
@FFI_DEBUG_TRUE@am__append_30 = -DFFI_DEBUG
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/doc/stamp-vti \
|
||||
@@ -75,17 +76,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
compile config.guess config.sub depcomp install-sh ltmain.sh \
|
||||
mdate-sh missing texinfo.tex
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
|
||||
$(top_srcdir)/m4/ax_cc_maxopt.m4 \
|
||||
$(top_srcdir)/m4/ax_cflags_warn_all.m4 \
|
||||
$(top_srcdir)/m4/ax_compiler_vendor.m4 \
|
||||
$(top_srcdir)/m4/ax_configure_args.m4 \
|
||||
$(top_srcdir)/m4/ax_enable_builddir.m4 \
|
||||
$(top_srcdir)/m4/ax_gcc_archflag.m4 \
|
||||
$(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
@@ -126,44 +117,45 @@ am_libffi_la_OBJECTS = src/prep_cif.lo src/types.lo src/raw_api.lo \
|
||||
@FFI_DEBUG_TRUE@am__objects_1 = src/debug.lo
|
||||
@MIPS_TRUE@am__objects_2 = src/mips/ffi.lo src/mips/o32.lo \
|
||||
@MIPS_TRUE@ src/mips/n32.lo
|
||||
@X86_TRUE@am__objects_3 = src/x86/ffi.lo src/x86/sysv.lo
|
||||
@X86_FREEBSD_TRUE@am__objects_4 = src/x86/ffi.lo src/x86/freebsd.lo
|
||||
@X86_WIN32_TRUE@am__objects_5 = src/x86/ffi.lo src/x86/win32.lo
|
||||
@X86_WIN64_TRUE@am__objects_6 = src/x86/ffi.lo src/x86/win64.lo
|
||||
@X86_DARWIN_TRUE@am__objects_7 = src/x86/ffi.lo src/x86/darwin.lo \
|
||||
@BFIN_TRUE@am__objects_3 = src/bfin/ffi.lo src/bfin/sysv.lo
|
||||
@X86_TRUE@am__objects_4 = src/x86/ffi.lo src/x86/sysv.lo
|
||||
@X86_FREEBSD_TRUE@am__objects_5 = src/x86/ffi.lo src/x86/freebsd.lo
|
||||
@X86_WIN32_TRUE@am__objects_6 = src/x86/ffi.lo src/x86/win32.lo
|
||||
@X86_WIN64_TRUE@am__objects_7 = src/x86/ffi.lo src/x86/win64.lo
|
||||
@X86_DARWIN_TRUE@am__objects_8 = src/x86/ffi.lo src/x86/darwin.lo \
|
||||
@X86_DARWIN_TRUE@ src/x86/ffi64.lo src/x86/darwin64.lo
|
||||
@SPARC_TRUE@am__objects_8 = src/sparc/ffi.lo src/sparc/v8.lo \
|
||||
@SPARC_TRUE@am__objects_9 = src/sparc/ffi.lo src/sparc/v8.lo \
|
||||
@SPARC_TRUE@ src/sparc/v9.lo
|
||||
@ALPHA_TRUE@am__objects_9 = src/alpha/ffi.lo src/alpha/osf.lo
|
||||
@IA64_TRUE@am__objects_10 = src/ia64/ffi.lo src/ia64/unix.lo
|
||||
@M32R_TRUE@am__objects_11 = src/m32r/sysv.lo src/m32r/ffi.lo
|
||||
@M68K_TRUE@am__objects_12 = src/m68k/ffi.lo src/m68k/sysv.lo
|
||||
@POWERPC_TRUE@am__objects_13 = src/powerpc/ffi.lo src/powerpc/sysv.lo \
|
||||
@ALPHA_TRUE@am__objects_10 = src/alpha/ffi.lo src/alpha/osf.lo
|
||||
@IA64_TRUE@am__objects_11 = src/ia64/ffi.lo src/ia64/unix.lo
|
||||
@M32R_TRUE@am__objects_12 = src/m32r/sysv.lo src/m32r/ffi.lo
|
||||
@M68K_TRUE@am__objects_13 = src/m68k/ffi.lo src/m68k/sysv.lo
|
||||
@POWERPC_TRUE@am__objects_14 = src/powerpc/ffi.lo src/powerpc/sysv.lo \
|
||||
@POWERPC_TRUE@ src/powerpc/ppc_closure.lo \
|
||||
@POWERPC_TRUE@ src/powerpc/linux64.lo \
|
||||
@POWERPC_TRUE@ src/powerpc/linux64_closure.lo
|
||||
@POWERPC_AIX_TRUE@am__objects_14 = src/powerpc/ffi_darwin.lo \
|
||||
@POWERPC_AIX_TRUE@am__objects_15 = src/powerpc/ffi_darwin.lo \
|
||||
@POWERPC_AIX_TRUE@ src/powerpc/aix.lo \
|
||||
@POWERPC_AIX_TRUE@ src/powerpc/aix_closure.lo
|
||||
@POWERPC_DARWIN_TRUE@am__objects_15 = src/powerpc/ffi_darwin.lo \
|
||||
@POWERPC_DARWIN_TRUE@am__objects_16 = src/powerpc/ffi_darwin.lo \
|
||||
@POWERPC_DARWIN_TRUE@ src/powerpc/darwin.lo \
|
||||
@POWERPC_DARWIN_TRUE@ src/powerpc/darwin_closure.lo
|
||||
@POWERPC_FREEBSD_TRUE@am__objects_16 = src/powerpc/ffi.lo \
|
||||
@POWERPC_FREEBSD_TRUE@am__objects_17 = src/powerpc/ffi.lo \
|
||||
@POWERPC_FREEBSD_TRUE@ src/powerpc/sysv.lo \
|
||||
@POWERPC_FREEBSD_TRUE@ src/powerpc/ppc_closure.lo
|
||||
@ARM_TRUE@am__objects_17 = src/arm/sysv.lo src/arm/ffi.lo
|
||||
@ARM_TRUE@@FFI_EXEC_TRAMPOLINE_TABLE_TRUE@am__objects_18 = src/arm/trampoline.lo
|
||||
@AVR32_TRUE@am__objects_19 = src/avr32/sysv.lo src/avr32/ffi.lo
|
||||
@LIBFFI_CRIS_TRUE@am__objects_20 = src/cris/sysv.lo src/cris/ffi.lo
|
||||
@FRV_TRUE@am__objects_21 = src/frv/eabi.lo src/frv/ffi.lo
|
||||
@MOXIE_TRUE@am__objects_22 = src/moxie/eabi.lo src/moxie/ffi.lo
|
||||
@S390_TRUE@am__objects_23 = src/s390/sysv.lo src/s390/ffi.lo
|
||||
@X86_64_TRUE@am__objects_24 = src/x86/ffi64.lo src/x86/unix64.lo \
|
||||
@ARM_TRUE@am__objects_18 = src/arm/sysv.lo src/arm/ffi.lo
|
||||
@ARM_TRUE@@FFI_EXEC_TRAMPOLINE_TABLE_TRUE@am__objects_19 = src/arm/trampoline.lo
|
||||
@AVR32_TRUE@am__objects_20 = src/avr32/sysv.lo src/avr32/ffi.lo
|
||||
@LIBFFI_CRIS_TRUE@am__objects_21 = src/cris/sysv.lo src/cris/ffi.lo
|
||||
@FRV_TRUE@am__objects_22 = src/frv/eabi.lo src/frv/ffi.lo
|
||||
@MOXIE_TRUE@am__objects_23 = src/moxie/eabi.lo src/moxie/ffi.lo
|
||||
@S390_TRUE@am__objects_24 = src/s390/sysv.lo src/s390/ffi.lo
|
||||
@X86_64_TRUE@am__objects_25 = src/x86/ffi64.lo src/x86/unix64.lo \
|
||||
@X86_64_TRUE@ src/x86/ffi.lo src/x86/sysv.lo
|
||||
@SH_TRUE@am__objects_25 = src/sh/sysv.lo src/sh/ffi.lo
|
||||
@SH64_TRUE@am__objects_26 = src/sh64/sysv.lo src/sh64/ffi.lo
|
||||
@PA_LINUX_TRUE@am__objects_27 = src/pa/linux.lo src/pa/ffi.lo
|
||||
@PA_HPUX_TRUE@am__objects_28 = src/pa/hpux32.lo src/pa/ffi.lo
|
||||
@SH_TRUE@am__objects_26 = src/sh/sysv.lo src/sh/ffi.lo
|
||||
@SH64_TRUE@am__objects_27 = src/sh64/sysv.lo src/sh64/ffi.lo
|
||||
@PA_LINUX_TRUE@am__objects_28 = src/pa/linux.lo src/pa/ffi.lo
|
||||
@PA_HPUX_TRUE@am__objects_29 = src/pa/hpux32.lo src/pa/ffi.lo
|
||||
nodist_libffi_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
|
||||
$(am__objects_3) $(am__objects_4) $(am__objects_5) \
|
||||
$(am__objects_6) $(am__objects_7) $(am__objects_8) \
|
||||
@@ -173,17 +165,17 @@ nodist_libffi_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
|
||||
$(am__objects_18) $(am__objects_19) $(am__objects_20) \
|
||||
$(am__objects_21) $(am__objects_22) $(am__objects_23) \
|
||||
$(am__objects_24) $(am__objects_25) $(am__objects_26) \
|
||||
$(am__objects_27) $(am__objects_28)
|
||||
$(am__objects_27) $(am__objects_28) $(am__objects_29)
|
||||
libffi_la_OBJECTS = $(am_libffi_la_OBJECTS) \
|
||||
$(nodist_libffi_la_OBJECTS)
|
||||
libffi_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(libffi_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||
libffi_convenience_la_LIBADD =
|
||||
am__objects_29 = src/prep_cif.lo src/types.lo src/raw_api.lo \
|
||||
am__objects_30 = src/prep_cif.lo src/types.lo src/raw_api.lo \
|
||||
src/java_raw_api.lo src/closures.lo
|
||||
am_libffi_convenience_la_OBJECTS = $(am__objects_29)
|
||||
am__objects_30 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
|
||||
am_libffi_convenience_la_OBJECTS = $(am__objects_30)
|
||||
am__objects_31 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
|
||||
$(am__objects_4) $(am__objects_5) $(am__objects_6) \
|
||||
$(am__objects_7) $(am__objects_8) $(am__objects_9) \
|
||||
$(am__objects_10) $(am__objects_11) $(am__objects_12) \
|
||||
@@ -192,8 +184,8 @@ am__objects_30 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
|
||||
$(am__objects_19) $(am__objects_20) $(am__objects_21) \
|
||||
$(am__objects_22) $(am__objects_23) $(am__objects_24) \
|
||||
$(am__objects_25) $(am__objects_26) $(am__objects_27) \
|
||||
$(am__objects_28)
|
||||
nodist_libffi_convenience_la_OBJECTS = $(am__objects_30)
|
||||
$(am__objects_28) $(am__objects_29)
|
||||
nodist_libffi_convenience_la_OBJECTS = $(am__objects_31)
|
||||
libffi_convenience_la_OBJECTS = $(am_libffi_convenience_la_OBJECTS) \
|
||||
$(nodist_libffi_convenience_la_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||
@@ -440,6 +432,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
||||
src/x86/win64.S src/x86/freebsd.S src/x86/ffi64.c \
|
||||
src/x86/unix64.S src/x86/ffitarget.h src/pa/ffitarget.h \
|
||||
src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S src/frv/ffi.c \
|
||||
src/bfin/ffi.c src/bfin/ffitarget.h src/bfin/sysv.S \
|
||||
src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
||||
src/moxie/ffi.c src/moxie/eabi.S libtool-version \
|
||||
ChangeLog.libffi m4/libtool.m4 m4/lt~obsolete.m4 \
|
||||
@@ -508,10 +501,10 @@ nodist_libffi_la_SOURCES = $(am__append_1) $(am__append_2) \
|
||||
$(am__append_18) $(am__append_19) $(am__append_20) \
|
||||
$(am__append_21) $(am__append_22) $(am__append_23) \
|
||||
$(am__append_24) $(am__append_25) $(am__append_26) \
|
||||
$(am__append_27) $(am__append_28)
|
||||
$(am__append_27) $(am__append_28) $(am__append_29)
|
||||
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
||||
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||
AM_CFLAGS = -g $(am__append_29)
|
||||
AM_CFLAGS = -g $(am__append_30)
|
||||
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
||||
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src -DFFI_BUILDING
|
||||
AM_CCASFLAGS = $(AM_CPPFLAGS) -g
|
||||
@@ -637,6 +630,16 @@ src/mips/o32.lo: src/mips/$(am__dirstamp) \
|
||||
src/mips/$(DEPDIR)/$(am__dirstamp)
|
||||
src/mips/n32.lo: src/mips/$(am__dirstamp) \
|
||||
src/mips/$(DEPDIR)/$(am__dirstamp)
|
||||
src/bfin/$(am__dirstamp):
|
||||
@$(MKDIR_P) src/bfin
|
||||
@: > src/bfin/$(am__dirstamp)
|
||||
src/bfin/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) src/bfin/$(DEPDIR)
|
||||
@: > src/bfin/$(DEPDIR)/$(am__dirstamp)
|
||||
src/bfin/ffi.lo: src/bfin/$(am__dirstamp) \
|
||||
src/bfin/$(DEPDIR)/$(am__dirstamp)
|
||||
src/bfin/sysv.lo: src/bfin/$(am__dirstamp) \
|
||||
src/bfin/$(DEPDIR)/$(am__dirstamp)
|
||||
src/x86/$(am__dirstamp):
|
||||
@$(MKDIR_P) src/x86
|
||||
@: > src/x86/$(am__dirstamp)
|
||||
@@ -852,6 +855,10 @@ mostlyclean-compile:
|
||||
-rm -f src/avr32/ffi.lo
|
||||
-rm -f src/avr32/sysv.$(OBJEXT)
|
||||
-rm -f src/avr32/sysv.lo
|
||||
-rm -f src/bfin/ffi.$(OBJEXT)
|
||||
-rm -f src/bfin/ffi.lo
|
||||
-rm -f src/bfin/sysv.$(OBJEXT)
|
||||
-rm -f src/bfin/sysv.lo
|
||||
-rm -f src/closures.$(OBJEXT)
|
||||
-rm -f src/closures.lo
|
||||
-rm -f src/cris/ffi.$(OBJEXT)
|
||||
@@ -973,6 +980,8 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/arm/$(DEPDIR)/trampoline.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/avr32/$(DEPDIR)/ffi.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/avr32/$(DEPDIR)/sysv.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/bfin/$(DEPDIR)/ffi.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/bfin/$(DEPDIR)/sysv.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/cris/$(DEPDIR)/ffi.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/cris/$(DEPDIR)/sysv.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/frv/$(DEPDIR)/eabi.Plo@am__quote@
|
||||
@@ -1077,6 +1086,7 @@ clean-libtool:
|
||||
-rm -rf src/alpha/.libs src/alpha/_libs
|
||||
-rm -rf src/arm/.libs src/arm/_libs
|
||||
-rm -rf src/avr32/.libs src/avr32/_libs
|
||||
-rm -rf src/bfin/.libs src/bfin/_libs
|
||||
-rm -rf src/cris/.libs src/cris/_libs
|
||||
-rm -rf src/frv/.libs src/frv/_libs
|
||||
-rm -rf src/ia64/.libs src/ia64/_libs
|
||||
@@ -1631,6 +1641,8 @@ distclean-generic:
|
||||
-rm -f src/arm/$(am__dirstamp)
|
||||
-rm -f src/avr32/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f src/avr32/$(am__dirstamp)
|
||||
-rm -f src/bfin/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f src/bfin/$(am__dirstamp)
|
||||
-rm -f src/cris/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f src/cris/$(am__dirstamp)
|
||||
-rm -f src/frv/$(DEPDIR)/$(am__dirstamp)
|
||||
@@ -1670,7 +1682,7 @@ clean-am: clean-aminfo clean-generic clean-libLTLIBRARIES \
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR)
|
||||
-rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/bfin/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-hdr distclean-libtool distclean-tags
|
||||
@@ -1790,7 +1802,7 @@ installcheck-am:
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR)
|
||||
-rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/bfin/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-aminfo \
|
||||
maintainer-clean-generic maintainer-clean-vti
|
||||
|
||||
9510
aclocal.m4
vendored
9510
aclocal.m4
vendored
File diff suppressed because it is too large
Load Diff
113
configure
vendored
113
configure
vendored
@@ -679,6 +679,8 @@ X86_FALSE
|
||||
X86_TRUE
|
||||
SPARC_FALSE
|
||||
SPARC_TRUE
|
||||
BFIN_FALSE
|
||||
BFIN_TRUE
|
||||
MIPS_FALSE
|
||||
MIPS_TRUE
|
||||
AM_LTLDFLAGS
|
||||
@@ -6840,14 +6842,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
|
||||
LD="${LD-ld} -m elf_i386_fbsd"
|
||||
;;
|
||||
x86_64-*linux*)
|
||||
case `/usr/bin/file conftest.o` in
|
||||
*x86-64*)
|
||||
LD="${LD-ld} -m elf32_x86_64"
|
||||
;;
|
||||
*)
|
||||
LD="${LD-ld} -m elf_i386"
|
||||
;;
|
||||
esac
|
||||
LD="${LD-ld} -m elf_i386"
|
||||
;;
|
||||
ppc64-*linux*|powerpc64-*linux*)
|
||||
LD="${LD-ld} -m elf32ppclinux"
|
||||
@@ -8418,10 +8413,6 @@ _lt_linker_boilerplate=`cat conftest.err`
|
||||
$RM -r conftest*
|
||||
|
||||
|
||||
## CAVEAT EMPTOR:
|
||||
## There is no encapsulation within the following macros, do not change
|
||||
## the running order or otherwise move them around unless you know exactly
|
||||
## what you are doing...
|
||||
if test -n "$compiler"; then
|
||||
|
||||
lt_prog_compiler_no_builtin_flag=
|
||||
@@ -10972,10 +10963,14 @@ fi
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
# Add ABI-specific directories to the system library path.
|
||||
sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
|
||||
|
||||
# Append ld.so.conf contents to the search path
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
|
||||
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||
@@ -12419,7 +12414,7 @@ if test "x$ax_gcc_arch" = xyes; then
|
||||
ax_gcc_arch=""
|
||||
if test "$cross_compiling" = no; then
|
||||
case $host_cpu in
|
||||
i[3456]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones
|
||||
i[3456]86*|x86_64*) # use cpuid codes
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
@@ -12535,18 +12530,24 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
case $ax_cv_gcc_x86_cpuid_1 in
|
||||
*5[48]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;;
|
||||
*5??:*:*:*) ax_gcc_arch=pentium ;;
|
||||
*6[3456]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
|
||||
*6a?:*[01]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
|
||||
*6a?:*[234]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
|
||||
*6[9d]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;
|
||||
*6[78b]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
|
||||
*6??:*:*:*) ax_gcc_arch=pentiumpro ;;
|
||||
*f3[347]:*:*:*|*f41347:*:*:*)
|
||||
*0?6[3456]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
|
||||
*0?6a?:*[01]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
|
||||
*0?6a?:*[234]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
|
||||
*0?6[9de]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;
|
||||
*0?6[78b]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
|
||||
*0?6f?:*:*:*|*1?66?:*:*:*) ax_gcc_arch="core2 pentium-m pentium3 pentiumpro" ;;
|
||||
*1?6[7d]?:*:*:*) ax_gcc_arch="penryn core2 pentium-m pentium3 pentiumpro" ;;
|
||||
*1?6[aef]?:*:*:*|*2?6[5cef]?:*:*:*) ax_gcc_arch="corei7 core2 pentium-m pentium3 pentiumpro" ;;
|
||||
*1?6c?:*:*:*|*[23]?66?:*:*:*) ax_gcc_arch="atom core2 pentium-m pentium3 pentiumpro" ;;
|
||||
*2?6[ad]?:*:*:*) ax_gcc_arch="corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;
|
||||
*0?6??:*:*:*) ax_gcc_arch=pentiumpro ;;
|
||||
*6??:*:*:*) ax_gcc_arch="core2 pentiumpro" ;;
|
||||
?000?f3[347]:*:*:*|?000?f41347:*:*:*|?000?f6?:*:*:*)
|
||||
case $host_cpu in
|
||||
x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;;
|
||||
*) ax_gcc_arch="prescott pentium4 pentiumpro" ;;
|
||||
esac ;;
|
||||
*f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";;
|
||||
x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;;
|
||||
*) ax_gcc_arch="prescott pentium4 pentiumpro" ;;
|
||||
esac ;;
|
||||
?000?f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";;
|
||||
esac ;;
|
||||
*:68747541:*:*) # AMD
|
||||
case $ax_cv_gcc_x86_cpuid_1 in
|
||||
@@ -12618,10 +12619,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;;
|
||||
*) ax_gcc_arch="athlon-4 athlon k7" ;;
|
||||
esac ;;
|
||||
*f[4cef8b]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;
|
||||
*f5?:*:*:*) ax_gcc_arch="opteron k8" ;;
|
||||
*f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;;
|
||||
*f??:*:*:*) ax_gcc_arch="k8" ;;
|
||||
?00??f[4cef8b]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;
|
||||
?00??f5?:*:*:*) ax_gcc_arch="opteron k8" ;;
|
||||
?00??f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;;
|
||||
?00??f??:*:*:*) ax_gcc_arch="k8" ;;
|
||||
?05??f??:*:*:*) ax_gcc_arch="btver1 amdfam10 k8" ;;
|
||||
?06??f??:*:*:*) ax_gcc_arch="bdver1 amdfam10 k8" ;;
|
||||
*f??:*:*:*) ax_gcc_arch="amdfam10 k8" ;;
|
||||
esac ;;
|
||||
*:746e6543:*:*) # IDT
|
||||
case $ax_cv_gcc_x86_cpuid_1 in
|
||||
@@ -13150,6 +13154,10 @@ case "$host" in
|
||||
TARGET=AVR32; TARGETDIR=avr32
|
||||
;;
|
||||
|
||||
bfin*)
|
||||
TARGET=BFIN; TARGETDIR=bfin
|
||||
;;
|
||||
|
||||
cris-*-*)
|
||||
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||
;;
|
||||
@@ -13295,6 +13303,14 @@ else
|
||||
MIPS_FALSE=
|
||||
fi
|
||||
|
||||
if test x$TARGET = xBFIN; then
|
||||
BFIN_TRUE=
|
||||
BFIN_FALSE='#'
|
||||
else
|
||||
BFIN_TRUE='#'
|
||||
BFIN_FALSE=
|
||||
fi
|
||||
|
||||
if test x$TARGET = xSPARC; then
|
||||
SPARC_TRUE=
|
||||
SPARC_FALSE='#'
|
||||
@@ -14134,40 +14150,7 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
|
||||
esac
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .cfi pseudo-op support" >&5
|
||||
$as_echo_n "checking assembler .cfi pseudo-op support... " >&6; }
|
||||
if ${gcc_cv_as_cfi_pseudo_op+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
|
||||
gcc_cv_as_cfi_pseudo_op=unknown
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
asm (".cfi_startproc\n\t.cfi_endproc");
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
gcc_cv_as_cfi_pseudo_op=yes
|
||||
else
|
||||
gcc_cv_as_cfi_pseudo_op=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_cfi_pseudo_op" >&5
|
||||
$as_echo "$gcc_cv_as_cfi_pseudo_op" >&6; }
|
||||
if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
|
||||
|
||||
$as_echo "#define HAVE_AS_CFI_PSEUDO_OP 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
GCC_AS_CFI_PSEUDO_OP
|
||||
|
||||
if test x$TARGET = xSPARC; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler and linker support unaligned pc related relocs" >&5
|
||||
@@ -14739,6 +14722,10 @@ if test -z "${MIPS_TRUE}" && test -z "${MIPS_FALSE}"; then
|
||||
as_fn_error $? "conditional \"MIPS\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
if test -z "${BFIN_TRUE}" && test -z "${BFIN_FALSE}"; then
|
||||
as_fn_error $? "conditional \"BFIN\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
if test -z "${SPARC_TRUE}" && test -z "${SPARC_FALSE}"; then
|
||||
as_fn_error $? "conditional \"SPARC\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
|
||||
@@ -75,6 +75,10 @@ case "$host" in
|
||||
TARGET=AVR32; TARGETDIR=avr32
|
||||
;;
|
||||
|
||||
bfin*)
|
||||
TARGET=BFIN; TARGETDIR=bfin
|
||||
;;
|
||||
|
||||
cris-*-*)
|
||||
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||
;;
|
||||
@@ -213,6 +217,7 @@ if test $TARGETDIR = unknown; then
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
|
||||
AM_CONDITIONAL(BFIN, test x$TARGET = xBFIN)
|
||||
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
||||
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
||||
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
||||
|
||||
@@ -39,17 +39,7 @@ subdir = include
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/ffi.h.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
|
||||
$(top_srcdir)/m4/ax_cc_maxopt.m4 \
|
||||
$(top_srcdir)/m4/ax_cflags_warn_all.m4 \
|
||||
$(top_srcdir)/m4/ax_compiler_vendor.m4 \
|
||||
$(top_srcdir)/m4/ax_configure_args.m4 \
|
||||
$(top_srcdir)/m4/ax_enable_builddir.m4 \
|
||||
$(top_srcdir)/m4/ax_gcc_archflag.m4 \
|
||||
$(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
|
||||
@@ -37,17 +37,7 @@ target_triplet = @target@
|
||||
subdir = man
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
|
||||
$(top_srcdir)/m4/ax_cc_maxopt.m4 \
|
||||
$(top_srcdir)/m4/ax_cflags_warn_all.m4 \
|
||||
$(top_srcdir)/m4/ax_compiler_vendor.m4 \
|
||||
$(top_srcdir)/m4/ax_configure_args.m4 \
|
||||
$(top_srcdir)/m4/ax_enable_builddir.m4 \
|
||||
$(top_srcdir)/m4/ax_gcc_archflag.m4 \
|
||||
$(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
|
||||
974
patches/bfin
Normal file
974
patches/bfin
Normal file
@@ -0,0 +1,974 @@
|
||||
Index: libffi/ChangeLog
|
||||
===================================================================
|
||||
--- libffi.orig/ChangeLog
|
||||
+++ libffi/ChangeLog
|
||||
@@ -1,3 +1,11 @@
|
||||
+2012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
|
||||
+
|
||||
+ * configure.ac: Add Blackfin/sysv support
|
||||
+ * Makefile.am: Add Blackfin/sysv support
|
||||
+ * src/bfin/ffi.c: Add Blackfin/sysv support
|
||||
+ * src/bfin/ffitarget.h: Add Blackfin/sysv support
|
||||
+ * src/bfin/sysv.S: Add Blackfin/sysv support
|
||||
+
|
||||
2012-04-11 Anthony Green <green@moxielogic.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Add new script.
|
||||
Index: libffi/Makefile.am
|
||||
===================================================================
|
||||
--- libffi.orig/Makefile.am
|
||||
+++ libffi/Makefile.am
|
||||
@@ -27,6 +27,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 Change
|
||||
src/x86/win64.S src/x86/freebsd.S src/x86/ffi64.c \
|
||||
src/x86/unix64.S src/x86/ffitarget.h src/pa/ffitarget.h \
|
||||
src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S src/frv/ffi.c \
|
||||
+ src/bfin/ffi.c src/bfin/ffitarget.h src/bfin/sysv.S \
|
||||
src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
||||
src/moxie/ffi.c src/moxie/eabi.S libtool-version \
|
||||
ChangeLog.libffi m4/libtool.m4 m4/lt~obsolete.m4 \
|
||||
@@ -105,6 +106,9 @@ endif
|
||||
if MIPS
|
||||
nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
|
||||
endif
|
||||
+if BFIN
|
||||
+nodist_libffi_la_SOURCES += src/bfin/ffi.c src/bfin/sysv.S
|
||||
+endif
|
||||
if X86
|
||||
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S
|
||||
endif
|
||||
Index: libffi/Makefile.in
|
||||
===================================================================
|
||||
--- libffi.orig/Makefile.in
|
||||
+++ libffi/Makefile.in
|
||||
@@ -38,35 +38,36 @@ host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
@FFI_DEBUG_TRUE@am__append_1 = src/debug.c
|
||||
@MIPS_TRUE@am__append_2 = src/mips/ffi.c src/mips/o32.S src/mips/n32.S
|
||||
-@X86_TRUE@am__append_3 = src/x86/ffi.c src/x86/sysv.S
|
||||
-@X86_FREEBSD_TRUE@am__append_4 = src/x86/ffi.c src/x86/freebsd.S
|
||||
-@X86_WIN32_TRUE@am__append_5 = src/x86/ffi.c src/x86/win32.S
|
||||
-@X86_WIN64_TRUE@am__append_6 = src/x86/ffi.c src/x86/win64.S
|
||||
-@X86_DARWIN_TRUE@am__append_7 = src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||
-@SPARC_TRUE@am__append_8 = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
|
||||
-@ALPHA_TRUE@am__append_9 = src/alpha/ffi.c src/alpha/osf.S
|
||||
-@IA64_TRUE@am__append_10 = src/ia64/ffi.c src/ia64/unix.S
|
||||
-@M32R_TRUE@am__append_11 = src/m32r/sysv.S src/m32r/ffi.c
|
||||
-@M68K_TRUE@am__append_12 = src/m68k/ffi.c src/m68k/sysv.S
|
||||
-@POWERPC_TRUE@am__append_13 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
|
||||
-@POWERPC_AIX_TRUE@am__append_14 = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
|
||||
-@POWERPC_DARWIN_TRUE@am__append_15 = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
|
||||
-@POWERPC_FREEBSD_TRUE@am__append_16 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
|
||||
-@ARM_TRUE@am__append_17 = src/arm/sysv.S src/arm/ffi.c
|
||||
-@ARM_TRUE@@FFI_EXEC_TRAMPOLINE_TABLE_TRUE@am__append_18 = src/arm/trampoline.S
|
||||
-@AVR32_TRUE@am__append_19 = src/avr32/sysv.S src/avr32/ffi.c
|
||||
-@LIBFFI_CRIS_TRUE@am__append_20 = src/cris/sysv.S src/cris/ffi.c
|
||||
-@FRV_TRUE@am__append_21 = src/frv/eabi.S src/frv/ffi.c
|
||||
-@MOXIE_TRUE@am__append_22 = src/moxie/eabi.S src/moxie/ffi.c
|
||||
-@S390_TRUE@am__append_23 = src/s390/sysv.S src/s390/ffi.c
|
||||
-@X86_64_TRUE@am__append_24 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
|
||||
-@SH_TRUE@am__append_25 = src/sh/sysv.S src/sh/ffi.c
|
||||
-@SH64_TRUE@am__append_26 = src/sh64/sysv.S src/sh64/ffi.c
|
||||
-@PA_LINUX_TRUE@am__append_27 = src/pa/linux.S src/pa/ffi.c
|
||||
-@PA_HPUX_TRUE@am__append_28 = src/pa/hpux32.S src/pa/ffi.c
|
||||
+@BFIN_TRUE@am__append_3 = src/bfin/ffi.c src/bfin/sysv.S
|
||||
+@X86_TRUE@am__append_4 = src/x86/ffi.c src/x86/sysv.S
|
||||
+@X86_FREEBSD_TRUE@am__append_5 = src/x86/ffi.c src/x86/freebsd.S
|
||||
+@X86_WIN32_TRUE@am__append_6 = src/x86/ffi.c src/x86/win32.S
|
||||
+@X86_WIN64_TRUE@am__append_7 = src/x86/ffi.c src/x86/win64.S
|
||||
+@X86_DARWIN_TRUE@am__append_8 = src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||
+@SPARC_TRUE@am__append_9 = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
|
||||
+@ALPHA_TRUE@am__append_10 = src/alpha/ffi.c src/alpha/osf.S
|
||||
+@IA64_TRUE@am__append_11 = src/ia64/ffi.c src/ia64/unix.S
|
||||
+@M32R_TRUE@am__append_12 = src/m32r/sysv.S src/m32r/ffi.c
|
||||
+@M68K_TRUE@am__append_13 = src/m68k/ffi.c src/m68k/sysv.S
|
||||
+@POWERPC_TRUE@am__append_14 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
|
||||
+@POWERPC_AIX_TRUE@am__append_15 = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
|
||||
+@POWERPC_DARWIN_TRUE@am__append_16 = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
|
||||
+@POWERPC_FREEBSD_TRUE@am__append_17 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
|
||||
+@ARM_TRUE@am__append_18 = src/arm/sysv.S src/arm/ffi.c
|
||||
+@ARM_TRUE@@FFI_EXEC_TRAMPOLINE_TABLE_TRUE@am__append_19 = src/arm/trampoline.S
|
||||
+@AVR32_TRUE@am__append_20 = src/avr32/sysv.S src/avr32/ffi.c
|
||||
+@LIBFFI_CRIS_TRUE@am__append_21 = src/cris/sysv.S src/cris/ffi.c
|
||||
+@FRV_TRUE@am__append_22 = src/frv/eabi.S src/frv/ffi.c
|
||||
+@MOXIE_TRUE@am__append_23 = src/moxie/eabi.S src/moxie/ffi.c
|
||||
+@S390_TRUE@am__append_24 = src/s390/sysv.S src/s390/ffi.c
|
||||
+@X86_64_TRUE@am__append_25 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
|
||||
+@SH_TRUE@am__append_26 = src/sh/sysv.S src/sh/ffi.c
|
||||
+@SH64_TRUE@am__append_27 = src/sh64/sysv.S src/sh64/ffi.c
|
||||
+@PA_LINUX_TRUE@am__append_28 = src/pa/linux.S src/pa/ffi.c
|
||||
+@PA_HPUX_TRUE@am__append_29 = src/pa/hpux32.S src/pa/ffi.c
|
||||
# Build debug. Define FFI_DEBUG on the commandline so that, when building with
|
||||
# MSVC, it can link against the debug CRT.
|
||||
-@FFI_DEBUG_TRUE@am__append_29 = -DFFI_DEBUG
|
||||
+@FFI_DEBUG_TRUE@am__append_30 = -DFFI_DEBUG
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/doc/stamp-vti \
|
||||
@@ -75,17 +76,7 @@ DIST_COMMON = README $(am__configure_dep
|
||||
compile config.guess config.sub depcomp install-sh ltmain.sh \
|
||||
mdate-sh missing texinfo.tex
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
-am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
|
||||
- $(top_srcdir)/m4/ax_cc_maxopt.m4 \
|
||||
- $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
|
||||
- $(top_srcdir)/m4/ax_compiler_vendor.m4 \
|
||||
- $(top_srcdir)/m4/ax_configure_args.m4 \
|
||||
- $(top_srcdir)/m4/ax_enable_builddir.m4 \
|
||||
- $(top_srcdir)/m4/ax_gcc_archflag.m4 \
|
||||
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
|
||||
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
|
||||
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
@@ -126,44 +117,45 @@ am_libffi_la_OBJECTS = src/prep_cif.lo s
|
||||
@FFI_DEBUG_TRUE@am__objects_1 = src/debug.lo
|
||||
@MIPS_TRUE@am__objects_2 = src/mips/ffi.lo src/mips/o32.lo \
|
||||
@MIPS_TRUE@ src/mips/n32.lo
|
||||
-@X86_TRUE@am__objects_3 = src/x86/ffi.lo src/x86/sysv.lo
|
||||
-@X86_FREEBSD_TRUE@am__objects_4 = src/x86/ffi.lo src/x86/freebsd.lo
|
||||
-@X86_WIN32_TRUE@am__objects_5 = src/x86/ffi.lo src/x86/win32.lo
|
||||
-@X86_WIN64_TRUE@am__objects_6 = src/x86/ffi.lo src/x86/win64.lo
|
||||
-@X86_DARWIN_TRUE@am__objects_7 = src/x86/ffi.lo src/x86/darwin.lo \
|
||||
+@BFIN_TRUE@am__objects_3 = src/bfin/ffi.lo src/bfin/sysv.lo
|
||||
+@X86_TRUE@am__objects_4 = src/x86/ffi.lo src/x86/sysv.lo
|
||||
+@X86_FREEBSD_TRUE@am__objects_5 = src/x86/ffi.lo src/x86/freebsd.lo
|
||||
+@X86_WIN32_TRUE@am__objects_6 = src/x86/ffi.lo src/x86/win32.lo
|
||||
+@X86_WIN64_TRUE@am__objects_7 = src/x86/ffi.lo src/x86/win64.lo
|
||||
+@X86_DARWIN_TRUE@am__objects_8 = src/x86/ffi.lo src/x86/darwin.lo \
|
||||
@X86_DARWIN_TRUE@ src/x86/ffi64.lo src/x86/darwin64.lo
|
||||
-@SPARC_TRUE@am__objects_8 = src/sparc/ffi.lo src/sparc/v8.lo \
|
||||
+@SPARC_TRUE@am__objects_9 = src/sparc/ffi.lo src/sparc/v8.lo \
|
||||
@SPARC_TRUE@ src/sparc/v9.lo
|
||||
-@ALPHA_TRUE@am__objects_9 = src/alpha/ffi.lo src/alpha/osf.lo
|
||||
-@IA64_TRUE@am__objects_10 = src/ia64/ffi.lo src/ia64/unix.lo
|
||||
-@M32R_TRUE@am__objects_11 = src/m32r/sysv.lo src/m32r/ffi.lo
|
||||
-@M68K_TRUE@am__objects_12 = src/m68k/ffi.lo src/m68k/sysv.lo
|
||||
-@POWERPC_TRUE@am__objects_13 = src/powerpc/ffi.lo src/powerpc/sysv.lo \
|
||||
+@ALPHA_TRUE@am__objects_10 = src/alpha/ffi.lo src/alpha/osf.lo
|
||||
+@IA64_TRUE@am__objects_11 = src/ia64/ffi.lo src/ia64/unix.lo
|
||||
+@M32R_TRUE@am__objects_12 = src/m32r/sysv.lo src/m32r/ffi.lo
|
||||
+@M68K_TRUE@am__objects_13 = src/m68k/ffi.lo src/m68k/sysv.lo
|
||||
+@POWERPC_TRUE@am__objects_14 = src/powerpc/ffi.lo src/powerpc/sysv.lo \
|
||||
@POWERPC_TRUE@ src/powerpc/ppc_closure.lo \
|
||||
@POWERPC_TRUE@ src/powerpc/linux64.lo \
|
||||
@POWERPC_TRUE@ src/powerpc/linux64_closure.lo
|
||||
-@POWERPC_AIX_TRUE@am__objects_14 = src/powerpc/ffi_darwin.lo \
|
||||
+@POWERPC_AIX_TRUE@am__objects_15 = src/powerpc/ffi_darwin.lo \
|
||||
@POWERPC_AIX_TRUE@ src/powerpc/aix.lo \
|
||||
@POWERPC_AIX_TRUE@ src/powerpc/aix_closure.lo
|
||||
-@POWERPC_DARWIN_TRUE@am__objects_15 = src/powerpc/ffi_darwin.lo \
|
||||
+@POWERPC_DARWIN_TRUE@am__objects_16 = src/powerpc/ffi_darwin.lo \
|
||||
@POWERPC_DARWIN_TRUE@ src/powerpc/darwin.lo \
|
||||
@POWERPC_DARWIN_TRUE@ src/powerpc/darwin_closure.lo
|
||||
-@POWERPC_FREEBSD_TRUE@am__objects_16 = src/powerpc/ffi.lo \
|
||||
+@POWERPC_FREEBSD_TRUE@am__objects_17 = src/powerpc/ffi.lo \
|
||||
@POWERPC_FREEBSD_TRUE@ src/powerpc/sysv.lo \
|
||||
@POWERPC_FREEBSD_TRUE@ src/powerpc/ppc_closure.lo
|
||||
-@ARM_TRUE@am__objects_17 = src/arm/sysv.lo src/arm/ffi.lo
|
||||
-@ARM_TRUE@@FFI_EXEC_TRAMPOLINE_TABLE_TRUE@am__objects_18 = src/arm/trampoline.lo
|
||||
-@AVR32_TRUE@am__objects_19 = src/avr32/sysv.lo src/avr32/ffi.lo
|
||||
-@LIBFFI_CRIS_TRUE@am__objects_20 = src/cris/sysv.lo src/cris/ffi.lo
|
||||
-@FRV_TRUE@am__objects_21 = src/frv/eabi.lo src/frv/ffi.lo
|
||||
-@MOXIE_TRUE@am__objects_22 = src/moxie/eabi.lo src/moxie/ffi.lo
|
||||
-@S390_TRUE@am__objects_23 = src/s390/sysv.lo src/s390/ffi.lo
|
||||
-@X86_64_TRUE@am__objects_24 = src/x86/ffi64.lo src/x86/unix64.lo \
|
||||
+@ARM_TRUE@am__objects_18 = src/arm/sysv.lo src/arm/ffi.lo
|
||||
+@ARM_TRUE@@FFI_EXEC_TRAMPOLINE_TABLE_TRUE@am__objects_19 = src/arm/trampoline.lo
|
||||
+@AVR32_TRUE@am__objects_20 = src/avr32/sysv.lo src/avr32/ffi.lo
|
||||
+@LIBFFI_CRIS_TRUE@am__objects_21 = src/cris/sysv.lo src/cris/ffi.lo
|
||||
+@FRV_TRUE@am__objects_22 = src/frv/eabi.lo src/frv/ffi.lo
|
||||
+@MOXIE_TRUE@am__objects_23 = src/moxie/eabi.lo src/moxie/ffi.lo
|
||||
+@S390_TRUE@am__objects_24 = src/s390/sysv.lo src/s390/ffi.lo
|
||||
+@X86_64_TRUE@am__objects_25 = src/x86/ffi64.lo src/x86/unix64.lo \
|
||||
@X86_64_TRUE@ src/x86/ffi.lo src/x86/sysv.lo
|
||||
-@SH_TRUE@am__objects_25 = src/sh/sysv.lo src/sh/ffi.lo
|
||||
-@SH64_TRUE@am__objects_26 = src/sh64/sysv.lo src/sh64/ffi.lo
|
||||
-@PA_LINUX_TRUE@am__objects_27 = src/pa/linux.lo src/pa/ffi.lo
|
||||
-@PA_HPUX_TRUE@am__objects_28 = src/pa/hpux32.lo src/pa/ffi.lo
|
||||
+@SH_TRUE@am__objects_26 = src/sh/sysv.lo src/sh/ffi.lo
|
||||
+@SH64_TRUE@am__objects_27 = src/sh64/sysv.lo src/sh64/ffi.lo
|
||||
+@PA_LINUX_TRUE@am__objects_28 = src/pa/linux.lo src/pa/ffi.lo
|
||||
+@PA_HPUX_TRUE@am__objects_29 = src/pa/hpux32.lo src/pa/ffi.lo
|
||||
nodist_libffi_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
|
||||
$(am__objects_3) $(am__objects_4) $(am__objects_5) \
|
||||
$(am__objects_6) $(am__objects_7) $(am__objects_8) \
|
||||
@@ -173,17 +165,17 @@ nodist_libffi_la_OBJECTS = $(am__objects
|
||||
$(am__objects_18) $(am__objects_19) $(am__objects_20) \
|
||||
$(am__objects_21) $(am__objects_22) $(am__objects_23) \
|
||||
$(am__objects_24) $(am__objects_25) $(am__objects_26) \
|
||||
- $(am__objects_27) $(am__objects_28)
|
||||
+ $(am__objects_27) $(am__objects_28) $(am__objects_29)
|
||||
libffi_la_OBJECTS = $(am_libffi_la_OBJECTS) \
|
||||
$(nodist_libffi_la_OBJECTS)
|
||||
libffi_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(libffi_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||
libffi_convenience_la_LIBADD =
|
||||
-am__objects_29 = src/prep_cif.lo src/types.lo src/raw_api.lo \
|
||||
+am__objects_30 = src/prep_cif.lo src/types.lo src/raw_api.lo \
|
||||
src/java_raw_api.lo src/closures.lo
|
||||
-am_libffi_convenience_la_OBJECTS = $(am__objects_29)
|
||||
-am__objects_30 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
|
||||
+am_libffi_convenience_la_OBJECTS = $(am__objects_30)
|
||||
+am__objects_31 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
|
||||
$(am__objects_4) $(am__objects_5) $(am__objects_6) \
|
||||
$(am__objects_7) $(am__objects_8) $(am__objects_9) \
|
||||
$(am__objects_10) $(am__objects_11) $(am__objects_12) \
|
||||
@@ -192,8 +184,8 @@ am__objects_30 = $(am__objects_1) $(am__
|
||||
$(am__objects_19) $(am__objects_20) $(am__objects_21) \
|
||||
$(am__objects_22) $(am__objects_23) $(am__objects_24) \
|
||||
$(am__objects_25) $(am__objects_26) $(am__objects_27) \
|
||||
- $(am__objects_28)
|
||||
-nodist_libffi_convenience_la_OBJECTS = $(am__objects_30)
|
||||
+ $(am__objects_28) $(am__objects_29)
|
||||
+nodist_libffi_convenience_la_OBJECTS = $(am__objects_31)
|
||||
libffi_convenience_la_OBJECTS = $(am_libffi_convenience_la_OBJECTS) \
|
||||
$(nodist_libffi_convenience_la_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||
@@ -440,6 +432,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 Change
|
||||
src/x86/win64.S src/x86/freebsd.S src/x86/ffi64.c \
|
||||
src/x86/unix64.S src/x86/ffitarget.h src/pa/ffitarget.h \
|
||||
src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S src/frv/ffi.c \
|
||||
+ src/bfin/ffi.c src/bfin/ffitarget.h src/bfin/sysv.S \
|
||||
src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
||||
src/moxie/ffi.c src/moxie/eabi.S libtool-version \
|
||||
ChangeLog.libffi m4/libtool.m4 m4/lt~obsolete.m4 \
|
||||
@@ -508,10 +501,10 @@ nodist_libffi_la_SOURCES = $(am__append_
|
||||
$(am__append_18) $(am__append_19) $(am__append_20) \
|
||||
$(am__append_21) $(am__append_22) $(am__append_23) \
|
||||
$(am__append_24) $(am__append_25) $(am__append_26) \
|
||||
- $(am__append_27) $(am__append_28)
|
||||
+ $(am__append_27) $(am__append_28) $(am__append_29)
|
||||
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
||||
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||
-AM_CFLAGS = -g $(am__append_29)
|
||||
+AM_CFLAGS = -g $(am__append_30)
|
||||
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
||||
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src -DFFI_BUILDING
|
||||
AM_CCASFLAGS = $(AM_CPPFLAGS) -g
|
||||
@@ -637,6 +630,16 @@ src/mips/o32.lo: src/mips/$(am__dirstamp
|
||||
src/mips/$(DEPDIR)/$(am__dirstamp)
|
||||
src/mips/n32.lo: src/mips/$(am__dirstamp) \
|
||||
src/mips/$(DEPDIR)/$(am__dirstamp)
|
||||
+src/bfin/$(am__dirstamp):
|
||||
+ @$(MKDIR_P) src/bfin
|
||||
+ @: > src/bfin/$(am__dirstamp)
|
||||
+src/bfin/$(DEPDIR)/$(am__dirstamp):
|
||||
+ @$(MKDIR_P) src/bfin/$(DEPDIR)
|
||||
+ @: > src/bfin/$(DEPDIR)/$(am__dirstamp)
|
||||
+src/bfin/ffi.lo: src/bfin/$(am__dirstamp) \
|
||||
+ src/bfin/$(DEPDIR)/$(am__dirstamp)
|
||||
+src/bfin/sysv.lo: src/bfin/$(am__dirstamp) \
|
||||
+ src/bfin/$(DEPDIR)/$(am__dirstamp)
|
||||
src/x86/$(am__dirstamp):
|
||||
@$(MKDIR_P) src/x86
|
||||
@: > src/x86/$(am__dirstamp)
|
||||
@@ -852,6 +855,10 @@ mostlyclean-compile:
|
||||
-rm -f src/avr32/ffi.lo
|
||||
-rm -f src/avr32/sysv.$(OBJEXT)
|
||||
-rm -f src/avr32/sysv.lo
|
||||
+ -rm -f src/bfin/ffi.$(OBJEXT)
|
||||
+ -rm -f src/bfin/ffi.lo
|
||||
+ -rm -f src/bfin/sysv.$(OBJEXT)
|
||||
+ -rm -f src/bfin/sysv.lo
|
||||
-rm -f src/closures.$(OBJEXT)
|
||||
-rm -f src/closures.lo
|
||||
-rm -f src/cris/ffi.$(OBJEXT)
|
||||
@@ -973,6 +980,8 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/arm/$(DEPDIR)/trampoline.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/avr32/$(DEPDIR)/ffi.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/avr32/$(DEPDIR)/sysv.Plo@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@src/bfin/$(DEPDIR)/ffi.Plo@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@src/bfin/$(DEPDIR)/sysv.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/cris/$(DEPDIR)/ffi.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/cris/$(DEPDIR)/sysv.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/frv/$(DEPDIR)/eabi.Plo@am__quote@
|
||||
@@ -1077,6 +1086,7 @@ clean-libtool:
|
||||
-rm -rf src/alpha/.libs src/alpha/_libs
|
||||
-rm -rf src/arm/.libs src/arm/_libs
|
||||
-rm -rf src/avr32/.libs src/avr32/_libs
|
||||
+ -rm -rf src/bfin/.libs src/bfin/_libs
|
||||
-rm -rf src/cris/.libs src/cris/_libs
|
||||
-rm -rf src/frv/.libs src/frv/_libs
|
||||
-rm -rf src/ia64/.libs src/ia64/_libs
|
||||
@@ -1631,6 +1641,8 @@ distclean-generic:
|
||||
-rm -f src/arm/$(am__dirstamp)
|
||||
-rm -f src/avr32/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f src/avr32/$(am__dirstamp)
|
||||
+ -rm -f src/bfin/$(DEPDIR)/$(am__dirstamp)
|
||||
+ -rm -f src/bfin/$(am__dirstamp)
|
||||
-rm -f src/cris/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f src/cris/$(am__dirstamp)
|
||||
-rm -f src/frv/$(DEPDIR)/$(am__dirstamp)
|
||||
@@ -1670,7 +1682,7 @@ clean-am: clean-aminfo clean-generic cle
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
- -rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR)
|
||||
+ -rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/bfin/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-hdr distclean-libtool distclean-tags
|
||||
@@ -1790,7 +1802,7 @@ installcheck-am:
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
- -rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR)
|
||||
+ -rm -rf src/$(DEPDIR) src/alpha/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/bfin/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/x86/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-aminfo \
|
||||
maintainer-clean-generic maintainer-clean-vti
|
||||
Index: libffi/configure
|
||||
===================================================================
|
||||
--- libffi.orig/configure
|
||||
+++ libffi/configure
|
||||
@@ -679,6 +679,8 @@ X86_FALSE
|
||||
X86_TRUE
|
||||
SPARC_FALSE
|
||||
SPARC_TRUE
|
||||
+BFIN_FALSE
|
||||
+BFIN_TRUE
|
||||
MIPS_FALSE
|
||||
MIPS_TRUE
|
||||
AM_LTLDFLAGS
|
||||
@@ -6840,14 +6842,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*
|
||||
LD="${LD-ld} -m elf_i386_fbsd"
|
||||
;;
|
||||
x86_64-*linux*)
|
||||
- case `/usr/bin/file conftest.o` in
|
||||
- *x86-64*)
|
||||
- LD="${LD-ld} -m elf32_x86_64"
|
||||
- ;;
|
||||
- *)
|
||||
- LD="${LD-ld} -m elf_i386"
|
||||
- ;;
|
||||
- esac
|
||||
+ LD="${LD-ld} -m elf_i386"
|
||||
;;
|
||||
ppc64-*linux*|powerpc64-*linux*)
|
||||
LD="${LD-ld} -m elf32ppclinux"
|
||||
@@ -8418,10 +8413,6 @@ _lt_linker_boilerplate=`cat conftest.err
|
||||
$RM -r conftest*
|
||||
|
||||
|
||||
-## CAVEAT EMPTOR:
|
||||
-## There is no encapsulation within the following macros, do not change
|
||||
-## the running order or otherwise move them around unless you know exactly
|
||||
-## what you are doing...
|
||||
if test -n "$compiler"; then
|
||||
|
||||
lt_prog_compiler_no_builtin_flag=
|
||||
@@ -10972,10 +10963,14 @@ fi
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
+ # Add ABI-specific directories to the system library path.
|
||||
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
|
||||
+
|
||||
# Append ld.so.conf contents to the search path
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
|
||||
+
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||
@@ -12419,7 +12414,7 @@ if test "x$ax_gcc_arch" = xyes; then
|
||||
ax_gcc_arch=""
|
||||
if test "$cross_compiling" = no; then
|
||||
case $host_cpu in
|
||||
- i[3456]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones
|
||||
+ i[3456]86*|x86_64*) # use cpuid codes
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
@@ -12535,18 +12530,24 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
case $ax_cv_gcc_x86_cpuid_1 in
|
||||
*5[48]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;;
|
||||
*5??:*:*:*) ax_gcc_arch=pentium ;;
|
||||
- *6[3456]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
|
||||
- *6a?:*[01]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
|
||||
- *6a?:*[234]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
|
||||
- *6[9d]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;
|
||||
- *6[78b]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
|
||||
- *6??:*:*:*) ax_gcc_arch=pentiumpro ;;
|
||||
- *f3[347]:*:*:*|*f41347:*:*:*)
|
||||
+ *0?6[3456]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
|
||||
+ *0?6a?:*[01]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
|
||||
+ *0?6a?:*[234]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
|
||||
+ *0?6[9de]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;
|
||||
+ *0?6[78b]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
|
||||
+ *0?6f?:*:*:*|*1?66?:*:*:*) ax_gcc_arch="core2 pentium-m pentium3 pentiumpro" ;;
|
||||
+ *1?6[7d]?:*:*:*) ax_gcc_arch="penryn core2 pentium-m pentium3 pentiumpro" ;;
|
||||
+ *1?6[aef]?:*:*:*|*2?6[5cef]?:*:*:*) ax_gcc_arch="corei7 core2 pentium-m pentium3 pentiumpro" ;;
|
||||
+ *1?6c?:*:*:*|*[23]?66?:*:*:*) ax_gcc_arch="atom core2 pentium-m pentium3 pentiumpro" ;;
|
||||
+ *2?6[ad]?:*:*:*) ax_gcc_arch="corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;
|
||||
+ *0?6??:*:*:*) ax_gcc_arch=pentiumpro ;;
|
||||
+ *6??:*:*:*) ax_gcc_arch="core2 pentiumpro" ;;
|
||||
+ ?000?f3[347]:*:*:*|?000?f41347:*:*:*|?000?f6?:*:*:*)
|
||||
case $host_cpu in
|
||||
- x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;;
|
||||
- *) ax_gcc_arch="prescott pentium4 pentiumpro" ;;
|
||||
- esac ;;
|
||||
- *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";;
|
||||
+ x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;;
|
||||
+ *) ax_gcc_arch="prescott pentium4 pentiumpro" ;;
|
||||
+ esac ;;
|
||||
+ ?000?f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";;
|
||||
esac ;;
|
||||
*:68747541:*:*) # AMD
|
||||
case $ax_cv_gcc_x86_cpuid_1 in
|
||||
@@ -12618,10 +12619,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;;
|
||||
*) ax_gcc_arch="athlon-4 athlon k7" ;;
|
||||
esac ;;
|
||||
- *f[4cef8b]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;
|
||||
- *f5?:*:*:*) ax_gcc_arch="opteron k8" ;;
|
||||
- *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;;
|
||||
- *f??:*:*:*) ax_gcc_arch="k8" ;;
|
||||
+ ?00??f[4cef8b]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;
|
||||
+ ?00??f5?:*:*:*) ax_gcc_arch="opteron k8" ;;
|
||||
+ ?00??f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;;
|
||||
+ ?00??f??:*:*:*) ax_gcc_arch="k8" ;;
|
||||
+ ?05??f??:*:*:*) ax_gcc_arch="btver1 amdfam10 k8" ;;
|
||||
+ ?06??f??:*:*:*) ax_gcc_arch="bdver1 amdfam10 k8" ;;
|
||||
+ *f??:*:*:*) ax_gcc_arch="amdfam10 k8" ;;
|
||||
esac ;;
|
||||
*:746e6543:*:*) # IDT
|
||||
case $ax_cv_gcc_x86_cpuid_1 in
|
||||
@@ -13150,6 +13154,10 @@ case "$host" in
|
||||
TARGET=AVR32; TARGETDIR=avr32
|
||||
;;
|
||||
|
||||
+ bfin*)
|
||||
+ TARGET=BFIN; TARGETDIR=bfin
|
||||
+ ;;
|
||||
+
|
||||
cris-*-*)
|
||||
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||
;;
|
||||
@@ -13295,6 +13303,14 @@ else
|
||||
MIPS_FALSE=
|
||||
fi
|
||||
|
||||
+ if test x$TARGET = xBFIN; then
|
||||
+ BFIN_TRUE=
|
||||
+ BFIN_FALSE='#'
|
||||
+else
|
||||
+ BFIN_TRUE='#'
|
||||
+ BFIN_FALSE=
|
||||
+fi
|
||||
+
|
||||
if test x$TARGET = xSPARC; then
|
||||
SPARC_TRUE=
|
||||
SPARC_FALSE='#'
|
||||
@@ -14134,40 +14150,7 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUI
|
||||
esac
|
||||
|
||||
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .cfi pseudo-op support" >&5
|
||||
-$as_echo_n "checking assembler .cfi pseudo-op support... " >&6; }
|
||||
-if ${gcc_cv_as_cfi_pseudo_op+:} false; then :
|
||||
- $as_echo_n "(cached) " >&6
|
||||
-else
|
||||
-
|
||||
- gcc_cv_as_cfi_pseudo_op=unknown
|
||||
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
-/* end confdefs.h. */
|
||||
-asm (".cfi_startproc\n\t.cfi_endproc");
|
||||
-int
|
||||
-main ()
|
||||
-{
|
||||
-
|
||||
- ;
|
||||
- return 0;
|
||||
-}
|
||||
-_ACEOF
|
||||
-if ac_fn_c_try_compile "$LINENO"; then :
|
||||
- gcc_cv_as_cfi_pseudo_op=yes
|
||||
-else
|
||||
- gcc_cv_as_cfi_pseudo_op=no
|
||||
-fi
|
||||
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
-
|
||||
-fi
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_cfi_pseudo_op" >&5
|
||||
-$as_echo "$gcc_cv_as_cfi_pseudo_op" >&6; }
|
||||
- if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
|
||||
-
|
||||
-$as_echo "#define HAVE_AS_CFI_PSEUDO_OP 1" >>confdefs.h
|
||||
-
|
||||
- fi
|
||||
-
|
||||
+GCC_AS_CFI_PSEUDO_OP
|
||||
|
||||
if test x$TARGET = xSPARC; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler and linker support unaligned pc related relocs" >&5
|
||||
@@ -14739,6 +14722,10 @@ if test -z "${MIPS_TRUE}" && test -z "${
|
||||
as_fn_error $? "conditional \"MIPS\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
+if test -z "${BFIN_TRUE}" && test -z "${BFIN_FALSE}"; then
|
||||
+ as_fn_error $? "conditional \"BFIN\" was never defined.
|
||||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
+fi
|
||||
if test -z "${SPARC_TRUE}" && test -z "${SPARC_FALSE}"; then
|
||||
as_fn_error $? "conditional \"SPARC\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
Index: libffi/configure.ac
|
||||
===================================================================
|
||||
--- libffi.orig/configure.ac
|
||||
+++ libffi/configure.ac
|
||||
@@ -75,6 +75,10 @@ case "$host" in
|
||||
TARGET=AVR32; TARGETDIR=avr32
|
||||
;;
|
||||
|
||||
+ bfin*)
|
||||
+ TARGET=BFIN; TARGETDIR=bfin
|
||||
+ ;;
|
||||
+
|
||||
cris-*-*)
|
||||
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||
;;
|
||||
@@ -213,6 +217,7 @@ if test $TARGETDIR = unknown; then
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
|
||||
+AM_CONDITIONAL(BFIN, test x$TARGET = xBFIN)
|
||||
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
||||
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
||||
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
||||
Index: libffi/src/bfin/ffi.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libffi/src/bfin/ffi.c
|
||||
@@ -0,0 +1,195 @@
|
||||
+/* -----------------------------------------------------------------------
|
||||
+ ffi.c - Copyright (c) 2012 Alexandre K. I. de Mendonca <alexandre.keunecke@gmail.com>
|
||||
+
|
||||
+ Blackfin Foreign Function Interface
|
||||
+
|
||||
+ Permission is hereby granted, free of charge, to any person obtaining
|
||||
+ a copy of this software and associated documentation files (the
|
||||
+ ``Software''), to deal in the Software without restriction, including
|
||||
+ without limitation the rights to use, copy, modify, merge, publish,
|
||||
+ distribute, sublicense, and/or sell copies of the Software, and to
|
||||
+ permit persons to whom the Software is furnished to do so, subject to
|
||||
+ the following conditions:
|
||||
+
|
||||
+ The above copyright notice and this permission notice shall be included
|
||||
+ in all copies or substantial portions of the Software.
|
||||
+
|
||||
+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
||||
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
+ DEALINGS IN THE SOFTWARE.
|
||||
+ ----------------------------------------------------------------------- */
|
||||
+#include <ffi.h>
|
||||
+#include <ffi_common.h>
|
||||
+
|
||||
+#include <stdlib.h>
|
||||
+#include <stdio.h>
|
||||
+
|
||||
+/* Maximum number of GPRs available for argument passing. */
|
||||
+#define MAX_GPRARGS 3
|
||||
+
|
||||
+/*
|
||||
+ * Return types
|
||||
+ */
|
||||
+#define FFIBFIN_RET_VOID 0
|
||||
+#define FFIBFIN_RET_BYTE 1
|
||||
+#define FFIBFIN_RET_HALFWORD 2
|
||||
+#define FFIBFIN_RET_INT64 3
|
||||
+#define FFIBFIN_RET_INT32 4
|
||||
+
|
||||
+/*====================================================================*/
|
||||
+/* PROTOTYPE *
|
||||
+ /*====================================================================*/
|
||||
+void ffi_prep_args(unsigned char *, extended_cif *);
|
||||
+
|
||||
+/*====================================================================*/
|
||||
+/* Externals */
|
||||
+/* (Assembly) */
|
||||
+/*====================================================================*/
|
||||
+
|
||||
+extern void ffi_call_SYSV(unsigned, extended_cif *, void(*)(unsigned char *, extended_cif *), unsigned, void *, void(*fn)(void));
|
||||
+
|
||||
+/*====================================================================*/
|
||||
+/* Implementation */
|
||||
+/* */
|
||||
+/*====================================================================*/
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+ * This function calculates the return type (size) based on type.
|
||||
+ */
|
||||
+
|
||||
+ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
|
||||
+{
|
||||
+ /* --------------------------------------*
|
||||
+ * Return handling *
|
||||
+ * --------------------------------------*/
|
||||
+ switch (cif->rtype->type) {
|
||||
+ case FFI_TYPE_VOID:
|
||||
+ cif->flags = FFIBFIN_RET_VOID;
|
||||
+ break;
|
||||
+ case FFI_TYPE_UINT16:
|
||||
+ case FFI_TYPE_SINT16:
|
||||
+ cif->flags = FFIBFIN_RET_HALFWORD;
|
||||
+ break;
|
||||
+ case FFI_TYPE_UINT8:
|
||||
+ cif->flags = FFIBFIN_RET_BYTE;
|
||||
+ break;
|
||||
+ case FFI_TYPE_INT:
|
||||
+ case FFI_TYPE_UINT32:
|
||||
+ case FFI_TYPE_SINT32:
|
||||
+ case FFI_TYPE_FLOAT:
|
||||
+ case FFI_TYPE_POINTER:
|
||||
+ case FFI_TYPE_SINT8:
|
||||
+ cif->flags = FFIBFIN_RET_INT32;
|
||||
+ break;
|
||||
+ case FFI_TYPE_SINT64:
|
||||
+ case FFI_TYPE_UINT64:
|
||||
+ case FFI_TYPE_DOUBLE:
|
||||
+ cif->flags = FFIBFIN_RET_INT64;
|
||||
+ break;
|
||||
+ case FFI_TYPE_STRUCT:
|
||||
+ if (cif->rtype->size <= 4){
|
||||
+ cif->flags = FFIBFIN_RET_INT32;
|
||||
+ }else if (cif->rtype->size == 8){
|
||||
+ cif->flags = FFIBFIN_RET_INT64;
|
||||
+ }else{
|
||||
+ //it will return via a hidden pointer in P0
|
||||
+ cif->flags = FFIBFIN_RET_VOID;
|
||||
+ }
|
||||
+ break;
|
||||
+ default:
|
||||
+ FFI_ASSERT(0);
|
||||
+ break;
|
||||
+ }
|
||||
+ return FFI_OK;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * This will prepare the arguments and will call the assembly routine
|
||||
+ * cif = the call interface
|
||||
+ * fn = the function to be called
|
||||
+ * rvalue = the return value
|
||||
+ * avalue = the arguments
|
||||
+ */
|
||||
+void ffi_call(ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue)
|
||||
+{
|
||||
+ int ret_type = cif->flags;
|
||||
+ extended_cif ecif;
|
||||
+ ecif.cif = cif;
|
||||
+ ecif.avalue = avalue;
|
||||
+ ecif.rvalue = rvalue;
|
||||
+
|
||||
+ switch (cif->abi) {
|
||||
+ case FFI_SYSV:
|
||||
+ ffi_call_SYSV(cif->bytes, &ecif, ffi_prep_args, ret_type, ecif.rvalue, fn);
|
||||
+ break;
|
||||
+ default:
|
||||
+ FFI_ASSERT(0);
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+* This function prepares the parameters (copies them from the ecif to the stack)
|
||||
+* to call the function (ffi_prep_args is called by the assembly routine in file
|
||||
+* sysv.S, which also calls the actual function)
|
||||
+*/
|
||||
+void ffi_prep_args(unsigned char *stack, extended_cif *ecif)
|
||||
+{
|
||||
+ register unsigned int i = 0;
|
||||
+ void **p_argv;
|
||||
+ unsigned char *argp;
|
||||
+ ffi_type **p_arg;
|
||||
+ argp = stack;
|
||||
+ p_argv = ecif->avalue;
|
||||
+ for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
|
||||
+ (i != 0);
|
||||
+ i--, p_arg++) {
|
||||
+ size_t z;
|
||||
+ z = (*p_arg)->size;
|
||||
+ if (z < sizeof(int)) {
|
||||
+ z = sizeof(int);
|
||||
+ switch ((*p_arg)->type) {
|
||||
+ case FFI_TYPE_SINT8: {
|
||||
+ signed char v = *(SINT8 *)(* p_argv);
|
||||
+ signed int t = v;
|
||||
+ *(signed int *) argp = t;
|
||||
+ }
|
||||
+ break;
|
||||
+ case FFI_TYPE_UINT8: {
|
||||
+ unsigned char v = *(UINT8 *)(* p_argv);
|
||||
+ unsigned int t = v;
|
||||
+ *(unsigned int *) argp = t;
|
||||
+ }
|
||||
+ break;
|
||||
+ case FFI_TYPE_SINT16:
|
||||
+ *(signed int *) argp = (signed int) * (SINT16 *)(* p_argv);
|
||||
+ break;
|
||||
+ case FFI_TYPE_UINT16:
|
||||
+ *(unsigned int *) argp = (unsigned int) * (UINT16 *)(* p_argv);
|
||||
+ break;
|
||||
+ case FFI_TYPE_STRUCT:
|
||||
+ memcpy(argp, *p_argv, (*p_arg)->size);
|
||||
+ break;
|
||||
+ default:
|
||||
+ FFI_ASSERT(0);
|
||||
+ break;
|
||||
+ }
|
||||
+ } else if (z == sizeof(int)) {
|
||||
+ *(unsigned int *) argp = (unsigned int) * (UINT32 *)(* p_argv);
|
||||
+ } else {
|
||||
+ memcpy(argp, *p_argv, z);
|
||||
+ }
|
||||
+ p_argv++;
|
||||
+ argp += z;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
Index: libffi/src/bfin/ffitarget.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libffi/src/bfin/ffitarget.h
|
||||
@@ -0,0 +1,43 @@
|
||||
+/* -----------------------------------------------------------------------
|
||||
+ ffitarget.h - Copyright (c) 2012 Alexandre K. I. de Mendonca <alexandre.keunecke@gmail.com>
|
||||
+
|
||||
+ Blackfin Foreign Function Interface
|
||||
+
|
||||
+ Permission is hereby granted, free of charge, to any person obtaining
|
||||
+ a copy of this software and associated documentation files (the
|
||||
+ ``Software''), to deal in the Software without restriction, including
|
||||
+ without limitation the rights to use, copy, modify, merge, publish,
|
||||
+ distribute, sublicense, and/or sell copies of the Software, and to
|
||||
+ permit persons to whom the Software is furnished to do so, subject to
|
||||
+ the following conditions:
|
||||
+
|
||||
+ The above copyright notice and this permission notice shall be included
|
||||
+ in all copies or substantial portions of the Software.
|
||||
+
|
||||
+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
||||
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
+ DEALINGS IN THE SOFTWARE.
|
||||
+ ----------------------------------------------------------------------- */
|
||||
+
|
||||
+#ifndef LIBFFI_TARGET_H
|
||||
+#define LIBFFI_TARGET_H
|
||||
+
|
||||
+#ifndef LIBFFI_ASM
|
||||
+typedef unsigned long ffi_arg;
|
||||
+typedef signed long ffi_sarg;
|
||||
+
|
||||
+typedef enum ffi_abi {
|
||||
+ FFI_FIRST_ABI = 0,
|
||||
+ FFI_SYSV,
|
||||
+ FFI_LAST_ABI,
|
||||
+ FFI_DEFAULT_ABI = FFI_SYSV
|
||||
+} ffi_abi;
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
Index: libffi/src/bfin/sysv.S
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libffi/src/bfin/sysv.S
|
||||
@@ -0,0 +1,177 @@
|
||||
+/* -----------------------------------------------------------------------
|
||||
+ sysv.S - Copyright (c) 2012 Alexandre K. I. de Mendonca <alexandre.keunecke@gmail.com>
|
||||
+
|
||||
+ Blackfin Foreign Function Interface
|
||||
+
|
||||
+ Permission is hereby granted, free of charge, to any person obtaining
|
||||
+ a copy of this software and associated documentation files (the
|
||||
+ ``Software''), to deal in the Software without restriction, including
|
||||
+ without limitation the rights to use, copy, modify, merge, publish,
|
||||
+ distribute, sublicense, and/or sell copies of the Software, and to
|
||||
+ permit persons to whom the Software is furnished to do so, subject to
|
||||
+ the following conditions:
|
||||
+
|
||||
+ The above copyright notice and this permission notice shall be included
|
||||
+ in all copies or substantial portions of the Software.
|
||||
+
|
||||
+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
||||
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
+ DEALINGS IN THE SOFTWARE.
|
||||
+ ----------------------------------------------------------------------- */
|
||||
+
|
||||
+#define LIBFFI_ASM
|
||||
+#include <fficonfig.h>
|
||||
+#include <ffi.h>
|
||||
+
|
||||
+.text
|
||||
+.align 4
|
||||
+
|
||||
+ /*
|
||||
+ There is a "feature" in the bfin toolchain that it puts a _ before funcion names
|
||||
+ that's why the function here it's called _ffi_call_SYSV and not ffi_call_SYSV
|
||||
+ */
|
||||
+ .global _ffi_call_SYSV;
|
||||
+ .type _ffi_call_SYSV, STT_FUNC;
|
||||
+ .func ffi_call_SYSV
|
||||
+
|
||||
+ /*
|
||||
+ cif->bytes = R0 (fp+8)
|
||||
+ &ecif = R1 (fp+12)
|
||||
+ ffi_prep_args = R2 (fp+16)
|
||||
+ ret_type = stack (fp+20)
|
||||
+ ecif.rvalue = stack (fp+24)
|
||||
+ fn = stack (fp+28)
|
||||
+ got (fp+32)
|
||||
+ There is room for improvement here (we can use temporary registers
|
||||
+ instead of saving the values in the memory)
|
||||
+ REGS:
|
||||
+ P5 => Stack pointer (function arguments)
|
||||
+ R5 => cif->bytes
|
||||
+ R4 => ret->type
|
||||
+
|
||||
+ FP-20 = P3
|
||||
+ FP-16 = SP (parameters area)
|
||||
+ FP-12 = SP (temp)
|
||||
+ FP-08 = function return part 1 [R0]
|
||||
+ FP-04 = function return part 2 [R1]
|
||||
+ */
|
||||
+
|
||||
+_ffi_call_SYSV:
|
||||
+.prologue:
|
||||
+ LINK 20;
|
||||
+ [FP-20] = P3;
|
||||
+ [FP+8] = R0;
|
||||
+ [FP+12] = R1;
|
||||
+ [FP+16] = R2;
|
||||
+
|
||||
+.allocate_stack:
|
||||
+ //alocate cif->bytes into the stack
|
||||
+ R1 = [FP+8];
|
||||
+ R0 = SP;
|
||||
+ R0 = R0 - R1;
|
||||
+ R1 = 4;
|
||||
+ R0 = R0 - R1;
|
||||
+ [FP-12] = SP;
|
||||
+ SP = R0;
|
||||
+ [FP-16] = SP;
|
||||
+
|
||||
+.call_prep_args:
|
||||
+ //get the addr of prep_args
|
||||
+ P0 = [P3 + _ffi_prep_args@FUNCDESC_GOT17M4];
|
||||
+ P1 = [P0];
|
||||
+ P3 = [P0+4];
|
||||
+ R0 = [FP-16];//SP (parameter area)
|
||||
+ R1 = [FP+12];//ecif
|
||||
+ call (P1);
|
||||
+
|
||||
+.call_user_function:
|
||||
+ //ajust SP so as to allow the user function access the parameters on the stack
|
||||
+ SP = [FP-16]; //point to function parameters
|
||||
+ R0 = [SP];
|
||||
+ R1 = [SP+4];
|
||||
+ R2 = [SP+8];
|
||||
+ //load user function address
|
||||
+ P0 = FP;
|
||||
+ P0 +=28;
|
||||
+ P1 = [P0];
|
||||
+ P1 = [P1];
|
||||
+ P3 = [P0+4];
|
||||
+ /*
|
||||
+ For functions returning aggregate values (struct) occupying more than 8 bytes,
|
||||
+ the caller allocates the return value object on the stack and the address
|
||||
+ of this object is passed to the callee as a hidden argument in register P0.
|
||||
+ */
|
||||
+ P0 = [FP+24];
|
||||
+
|
||||
+ call (P1);
|
||||
+ SP = [FP-12];
|
||||
+.compute_return:
|
||||
+ P2 = [FP-20];
|
||||
+ [FP-8] = R0;
|
||||
+ [FP-4] = R1;
|
||||
+
|
||||
+ R0 = [FP+20];
|
||||
+ R1 = R0 << 2;
|
||||
+
|
||||
+ R0 = [P2+.rettable@GOT17M4];
|
||||
+ R0 = R1 + R0;
|
||||
+ P2 = R0;
|
||||
+ R1 = [P2];
|
||||
+
|
||||
+ P2 = [FP+-20];
|
||||
+ R0 = [P2+.rettable@GOT17M4];
|
||||
+ R0 = R1 + R0;
|
||||
+ P2 = R0;
|
||||
+ R0 = [FP-8];
|
||||
+ R1 = [FP-4];
|
||||
+ jump (P2);
|
||||
+
|
||||
+/*
|
||||
+#define FFIBFIN_RET_VOID 0
|
||||
+#define FFIBFIN_RET_BYTE 1
|
||||
+#define FFIBFIN_RET_HALFWORD 2
|
||||
+#define FFIBFIN_RET_INT64 3
|
||||
+#define FFIBFIN_RET_INT32 4
|
||||
+*/
|
||||
+.align 4
|
||||
+.align 4
|
||||
+.rettable:
|
||||
+ .dd .epilogue - .rettable
|
||||
+ .dd .rbyte - .rettable;
|
||||
+ .dd .rhalfword - .rettable;
|
||||
+ .dd .rint64 - .rettable;
|
||||
+ .dd .rint32 - .rettable;
|
||||
+
|
||||
+.rbyte:
|
||||
+ P0 = [FP+24];
|
||||
+ R0 = R0.B (Z);
|
||||
+ [P0] = R0;
|
||||
+ JUMP .epilogue
|
||||
+.rhalfword:
|
||||
+ P0 = [FP+24];
|
||||
+ R0 = R0.L;
|
||||
+ [P0] = R0;
|
||||
+ JUMP .epilogue
|
||||
+.rint64:
|
||||
+ P0 = [FP+24];// &rvalue
|
||||
+ [P0] = R0;
|
||||
+ [P0+4] = R1;
|
||||
+ JUMP .epilogue
|
||||
+.rint32:
|
||||
+ P0 = [FP+24];
|
||||
+ [P0] = R0;
|
||||
+.epilogue:
|
||||
+ R0 = [FP+8];
|
||||
+ R1 = [FP+12];
|
||||
+ R2 = [FP+16];
|
||||
+ P3 = [FP-20];
|
||||
+ UNLINK;
|
||||
+ RTS;
|
||||
+
|
||||
+.size _ffi_call_SYSV,.-_ffi_call_SYSV;
|
||||
+.endfunc
|
||||
@@ -18,3 +18,4 @@ darwin-missing-semi
|
||||
xcode-improvements
|
||||
update-disty
|
||||
v3_0_11
|
||||
bfin
|
||||
|
||||
195
src/bfin/ffi.c
Normal file
195
src/bfin/ffi.c
Normal file
@@ -0,0 +1,195 @@
|
||||
/* -----------------------------------------------------------------------
|
||||
ffi.c - Copyright (c) 2012 Alexandre K. I. de Mendonca <alexandre.keunecke@gmail.com>
|
||||
|
||||
Blackfin Foreign Function Interface
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
``Software''), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
----------------------------------------------------------------------- */
|
||||
#include <ffi.h>
|
||||
#include <ffi_common.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
/* Maximum number of GPRs available for argument passing. */
|
||||
#define MAX_GPRARGS 3
|
||||
|
||||
/*
|
||||
* Return types
|
||||
*/
|
||||
#define FFIBFIN_RET_VOID 0
|
||||
#define FFIBFIN_RET_BYTE 1
|
||||
#define FFIBFIN_RET_HALFWORD 2
|
||||
#define FFIBFIN_RET_INT64 3
|
||||
#define FFIBFIN_RET_INT32 4
|
||||
|
||||
/*====================================================================*/
|
||||
/* PROTOTYPE *
|
||||
/*====================================================================*/
|
||||
void ffi_prep_args(unsigned char *, extended_cif *);
|
||||
|
||||
/*====================================================================*/
|
||||
/* Externals */
|
||||
/* (Assembly) */
|
||||
/*====================================================================*/
|
||||
|
||||
extern void ffi_call_SYSV(unsigned, extended_cif *, void(*)(unsigned char *, extended_cif *), unsigned, void *, void(*fn)(void));
|
||||
|
||||
/*====================================================================*/
|
||||
/* Implementation */
|
||||
/* */
|
||||
/*====================================================================*/
|
||||
|
||||
|
||||
/*
|
||||
* This function calculates the return type (size) based on type.
|
||||
*/
|
||||
|
||||
ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
|
||||
{
|
||||
/* --------------------------------------*
|
||||
* Return handling *
|
||||
* --------------------------------------*/
|
||||
switch (cif->rtype->type) {
|
||||
case FFI_TYPE_VOID:
|
||||
cif->flags = FFIBFIN_RET_VOID;
|
||||
break;
|
||||
case FFI_TYPE_UINT16:
|
||||
case FFI_TYPE_SINT16:
|
||||
cif->flags = FFIBFIN_RET_HALFWORD;
|
||||
break;
|
||||
case FFI_TYPE_UINT8:
|
||||
cif->flags = FFIBFIN_RET_BYTE;
|
||||
break;
|
||||
case FFI_TYPE_INT:
|
||||
case FFI_TYPE_UINT32:
|
||||
case FFI_TYPE_SINT32:
|
||||
case FFI_TYPE_FLOAT:
|
||||
case FFI_TYPE_POINTER:
|
||||
case FFI_TYPE_SINT8:
|
||||
cif->flags = FFIBFIN_RET_INT32;
|
||||
break;
|
||||
case FFI_TYPE_SINT64:
|
||||
case FFI_TYPE_UINT64:
|
||||
case FFI_TYPE_DOUBLE:
|
||||
cif->flags = FFIBFIN_RET_INT64;
|
||||
break;
|
||||
case FFI_TYPE_STRUCT:
|
||||
if (cif->rtype->size <= 4){
|
||||
cif->flags = FFIBFIN_RET_INT32;
|
||||
}else if (cif->rtype->size == 8){
|
||||
cif->flags = FFIBFIN_RET_INT64;
|
||||
}else{
|
||||
//it will return via a hidden pointer in P0
|
||||
cif->flags = FFIBFIN_RET_VOID;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
FFI_ASSERT(0);
|
||||
break;
|
||||
}
|
||||
return FFI_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* This will prepare the arguments and will call the assembly routine
|
||||
* cif = the call interface
|
||||
* fn = the function to be called
|
||||
* rvalue = the return value
|
||||
* avalue = the arguments
|
||||
*/
|
||||
void ffi_call(ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue)
|
||||
{
|
||||
int ret_type = cif->flags;
|
||||
extended_cif ecif;
|
||||
ecif.cif = cif;
|
||||
ecif.avalue = avalue;
|
||||
ecif.rvalue = rvalue;
|
||||
|
||||
switch (cif->abi) {
|
||||
case FFI_SYSV:
|
||||
ffi_call_SYSV(cif->bytes, &ecif, ffi_prep_args, ret_type, ecif.rvalue, fn);
|
||||
break;
|
||||
default:
|
||||
FFI_ASSERT(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* This function prepares the parameters (copies them from the ecif to the stack)
|
||||
* to call the function (ffi_prep_args is called by the assembly routine in file
|
||||
* sysv.S, which also calls the actual function)
|
||||
*/
|
||||
void ffi_prep_args(unsigned char *stack, extended_cif *ecif)
|
||||
{
|
||||
register unsigned int i = 0;
|
||||
void **p_argv;
|
||||
unsigned char *argp;
|
||||
ffi_type **p_arg;
|
||||
argp = stack;
|
||||
p_argv = ecif->avalue;
|
||||
for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
|
||||
(i != 0);
|
||||
i--, p_arg++) {
|
||||
size_t z;
|
||||
z = (*p_arg)->size;
|
||||
if (z < sizeof(int)) {
|
||||
z = sizeof(int);
|
||||
switch ((*p_arg)->type) {
|
||||
case FFI_TYPE_SINT8: {
|
||||
signed char v = *(SINT8 *)(* p_argv);
|
||||
signed int t = v;
|
||||
*(signed int *) argp = t;
|
||||
}
|
||||
break;
|
||||
case FFI_TYPE_UINT8: {
|
||||
unsigned char v = *(UINT8 *)(* p_argv);
|
||||
unsigned int t = v;
|
||||
*(unsigned int *) argp = t;
|
||||
}
|
||||
break;
|
||||
case FFI_TYPE_SINT16:
|
||||
*(signed int *) argp = (signed int) * (SINT16 *)(* p_argv);
|
||||
break;
|
||||
case FFI_TYPE_UINT16:
|
||||
*(unsigned int *) argp = (unsigned int) * (UINT16 *)(* p_argv);
|
||||
break;
|
||||
case FFI_TYPE_STRUCT:
|
||||
memcpy(argp, *p_argv, (*p_arg)->size);
|
||||
break;
|
||||
default:
|
||||
FFI_ASSERT(0);
|
||||
break;
|
||||
}
|
||||
} else if (z == sizeof(int)) {
|
||||
*(unsigned int *) argp = (unsigned int) * (UINT32 *)(* p_argv);
|
||||
} else {
|
||||
memcpy(argp, *p_argv, z);
|
||||
}
|
||||
p_argv++;
|
||||
argp += z;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
43
src/bfin/ffitarget.h
Normal file
43
src/bfin/ffitarget.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/* -----------------------------------------------------------------------
|
||||
ffitarget.h - Copyright (c) 2012 Alexandre K. I. de Mendonca <alexandre.keunecke@gmail.com>
|
||||
|
||||
Blackfin Foreign Function Interface
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
``Software''), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
#ifndef LIBFFI_TARGET_H
|
||||
#define LIBFFI_TARGET_H
|
||||
|
||||
#ifndef LIBFFI_ASM
|
||||
typedef unsigned long ffi_arg;
|
||||
typedef signed long ffi_sarg;
|
||||
|
||||
typedef enum ffi_abi {
|
||||
FFI_FIRST_ABI = 0,
|
||||
FFI_SYSV,
|
||||
FFI_LAST_ABI,
|
||||
FFI_DEFAULT_ABI = FFI_SYSV
|
||||
} ffi_abi;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
177
src/bfin/sysv.S
Normal file
177
src/bfin/sysv.S
Normal file
@@ -0,0 +1,177 @@
|
||||
/* -----------------------------------------------------------------------
|
||||
sysv.S - Copyright (c) 2012 Alexandre K. I. de Mendonca <alexandre.keunecke@gmail.com>
|
||||
|
||||
Blackfin Foreign Function Interface
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
``Software''), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
#define LIBFFI_ASM
|
||||
#include <fficonfig.h>
|
||||
#include <ffi.h>
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
/*
|
||||
There is a "feature" in the bfin toolchain that it puts a _ before funcion names
|
||||
that's why the function here it's called _ffi_call_SYSV and not ffi_call_SYSV
|
||||
*/
|
||||
.global _ffi_call_SYSV;
|
||||
.type _ffi_call_SYSV, STT_FUNC;
|
||||
.func ffi_call_SYSV
|
||||
|
||||
/*
|
||||
cif->bytes = R0 (fp+8)
|
||||
&ecif = R1 (fp+12)
|
||||
ffi_prep_args = R2 (fp+16)
|
||||
ret_type = stack (fp+20)
|
||||
ecif.rvalue = stack (fp+24)
|
||||
fn = stack (fp+28)
|
||||
got (fp+32)
|
||||
There is room for improvement here (we can use temporary registers
|
||||
instead of saving the values in the memory)
|
||||
REGS:
|
||||
P5 => Stack pointer (function arguments)
|
||||
R5 => cif->bytes
|
||||
R4 => ret->type
|
||||
|
||||
FP-20 = P3
|
||||
FP-16 = SP (parameters area)
|
||||
FP-12 = SP (temp)
|
||||
FP-08 = function return part 1 [R0]
|
||||
FP-04 = function return part 2 [R1]
|
||||
*/
|
||||
|
||||
_ffi_call_SYSV:
|
||||
.prologue:
|
||||
LINK 20;
|
||||
[FP-20] = P3;
|
||||
[FP+8] = R0;
|
||||
[FP+12] = R1;
|
||||
[FP+16] = R2;
|
||||
|
||||
.allocate_stack:
|
||||
//alocate cif->bytes into the stack
|
||||
R1 = [FP+8];
|
||||
R0 = SP;
|
||||
R0 = R0 - R1;
|
||||
R1 = 4;
|
||||
R0 = R0 - R1;
|
||||
[FP-12] = SP;
|
||||
SP = R0;
|
||||
[FP-16] = SP;
|
||||
|
||||
.call_prep_args:
|
||||
//get the addr of prep_args
|
||||
P0 = [P3 + _ffi_prep_args@FUNCDESC_GOT17M4];
|
||||
P1 = [P0];
|
||||
P3 = [P0+4];
|
||||
R0 = [FP-16];//SP (parameter area)
|
||||
R1 = [FP+12];//ecif
|
||||
call (P1);
|
||||
|
||||
.call_user_function:
|
||||
//ajust SP so as to allow the user function access the parameters on the stack
|
||||
SP = [FP-16]; //point to function parameters
|
||||
R0 = [SP];
|
||||
R1 = [SP+4];
|
||||
R2 = [SP+8];
|
||||
//load user function address
|
||||
P0 = FP;
|
||||
P0 +=28;
|
||||
P1 = [P0];
|
||||
P1 = [P1];
|
||||
P3 = [P0+4];
|
||||
/*
|
||||
For functions returning aggregate values (struct) occupying more than 8 bytes,
|
||||
the caller allocates the return value object on the stack and the address
|
||||
of this object is passed to the callee as a hidden argument in register P0.
|
||||
*/
|
||||
P0 = [FP+24];
|
||||
|
||||
call (P1);
|
||||
SP = [FP-12];
|
||||
.compute_return:
|
||||
P2 = [FP-20];
|
||||
[FP-8] = R0;
|
||||
[FP-4] = R1;
|
||||
|
||||
R0 = [FP+20];
|
||||
R1 = R0 << 2;
|
||||
|
||||
R0 = [P2+.rettable@GOT17M4];
|
||||
R0 = R1 + R0;
|
||||
P2 = R0;
|
||||
R1 = [P2];
|
||||
|
||||
P2 = [FP+-20];
|
||||
R0 = [P2+.rettable@GOT17M4];
|
||||
R0 = R1 + R0;
|
||||
P2 = R0;
|
||||
R0 = [FP-8];
|
||||
R1 = [FP-4];
|
||||
jump (P2);
|
||||
|
||||
/*
|
||||
#define FFIBFIN_RET_VOID 0
|
||||
#define FFIBFIN_RET_BYTE 1
|
||||
#define FFIBFIN_RET_HALFWORD 2
|
||||
#define FFIBFIN_RET_INT64 3
|
||||
#define FFIBFIN_RET_INT32 4
|
||||
*/
|
||||
.align 4
|
||||
.align 4
|
||||
.rettable:
|
||||
.dd .epilogue - .rettable
|
||||
.dd .rbyte - .rettable;
|
||||
.dd .rhalfword - .rettable;
|
||||
.dd .rint64 - .rettable;
|
||||
.dd .rint32 - .rettable;
|
||||
|
||||
.rbyte:
|
||||
P0 = [FP+24];
|
||||
R0 = R0.B (Z);
|
||||
[P0] = R0;
|
||||
JUMP .epilogue
|
||||
.rhalfword:
|
||||
P0 = [FP+24];
|
||||
R0 = R0.L;
|
||||
[P0] = R0;
|
||||
JUMP .epilogue
|
||||
.rint64:
|
||||
P0 = [FP+24];// &rvalue
|
||||
[P0] = R0;
|
||||
[P0+4] = R1;
|
||||
JUMP .epilogue
|
||||
.rint32:
|
||||
P0 = [FP+24];
|
||||
[P0] = R0;
|
||||
.epilogue:
|
||||
R0 = [FP+8];
|
||||
R1 = [FP+12];
|
||||
R2 = [FP+16];
|
||||
P3 = [FP-20];
|
||||
UNLINK;
|
||||
RTS;
|
||||
|
||||
.size _ffi_call_SYSV,.-_ffi_call_SYSV;
|
||||
.endfunc
|
||||
@@ -37,17 +37,7 @@ target_triplet = @target@
|
||||
subdir = testsuite
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
|
||||
$(top_srcdir)/m4/ax_cc_maxopt.m4 \
|
||||
$(top_srcdir)/m4/ax_cflags_warn_all.m4 \
|
||||
$(top_srcdir)/m4/ax_compiler_vendor.m4 \
|
||||
$(top_srcdir)/m4/ax_configure_args.m4 \
|
||||
$(top_srcdir)/m4/ax_enable_builddir.m4 \
|
||||
$(top_srcdir)/m4/ax_gcc_archflag.m4 \
|
||||
$(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
|
||||
Reference in New Issue
Block a user