summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Green <green@moxielogic.com>2013-12-05 16:23:25 -0500
committerAnthony Green <green@moxielogic.com>2013-12-05 16:23:25 -0500
commit3dc3f32c35db5ab995a835225f6815369735ceb7 (patch)
tree3ed261655ba53cd2269dba583d6f3bf561adb34d
parent356b2cbc304bfe5bdc28b8d1c68d1ff084e9ec37 (diff)
downloadlibffi-3dc3f32c35db5ab995a835225f6815369735ceb7.tar.gz
Undo iOS ARM64 changes.
-rw-r--r--.gitignore2
-rw-r--r--ChangeLog28
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in2
-rw-r--r--README5
-rwxr-xr-xbuild-ios.sh67
-rw-r--r--generate-ios-source-and-headers.py142
-rw-r--r--generate-osx-source-and-headers.py66
-rw-r--r--include/ffi_common.h2
-rw-r--r--libffi.xcodeproj/project.pbxproj749
-rw-r--r--src/aarch64/ffi.c84
-rw-r--r--src/aarch64/sysv.S47
-rw-r--r--src/arm/ffi.c63
-rw-r--r--src/arm/sysv.S99
-rw-r--r--src/closures.c2
-rw-r--r--src/dlmalloc.c6
-rw-r--r--src/prep_cif.c2
-rw-r--r--src/x86/ffi.c43
-rw-r--r--src/x86/ffi64.c8
19 files changed, 616 insertions, 803 deletions
diff --git a/.gitignore b/.gitignore
index 95566c9..6af76ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,5 +19,3 @@ autom4te.cache
libffi.xcodeproj/xcuserdata
libffi.xcodeproj/project.xcworkspace
ios/
-osx/
-build_*/
diff --git a/ChangeLog b/ChangeLog
index 06d42f7..277deed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,31 +1,3 @@
-2013-11-30 Anthony Green <green@moxielogic.com>
-
- * Makefile.am (EXTRA_DIST): Remove build-ios.sh.
- * Makefile:in: Rebuilt.
-
-2012-11-30 Zachary Waldowski <zwaldowski@gmail.com>
-
- * src/arm/ffi.c, src/dlmalloc.c, src/x86/ffi.c: Silence Clang
- warnings.
- * src/arm/sysv.S: Simplify RETLDM arguments for LLVM 3.1. More
- Clang clean-ups.
- * .gitignore: Exclude OS X generated source and build_.
- * generate-osx-source-and-headers.py: Clean up, modernize scripts.
- * generate-ios-source-and-headers.py: Ditto, and add __arm64__
- support.
- * include/ffi_common.h: Test for HAVE_STRING_H.
- * src/closures.c (open_temp_exec_file_dir): Use size_t.
- * src/prep_cif (ffi_prep_cif_core): Cast ALIGN result.
- * src/x86/ffi64.c: More Clang warning clean-ups.
- * src/aarch64/sysv.S: Use CNAME for global symbols. Only use
- .size for ELF targets.
- * src/aarch64/ffi.c: Clean up for double == long double. Clean up
- for Xcode warnings. Use Clang cache invalidation builtin. Use
- size_t in place of unsigned in many places.
- * libffi.xcodeproj/project.pbxproj: Include x86_64+aarch64 pieces
- in library. Export headers properly.
- * build-ios.sh: Remove.
-
2013-11-21 Anthony Green <green@moxielogic.com>
* configure, Makefile.in, include/Makefile.in, include/ffi.h.in,
diff --git a/Makefile.am b/Makefile.am
index d25aebd..4b5d1c7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,7 +8,7 @@ SUBDIRS = include testsuite man
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
src/aarch64/ffi.c src/aarch64/ffitarget.h src/aarch64/sysv.S \
- src/alpha/ffi.c src/alpha/osf.S \
+ build-ios.sh src/alpha/ffi.c src/alpha/osf.S \
src/alpha/ffitarget.h src/arc/ffi.c src/arc/arcompact.S \
src/arc/ffitarget.h src/arm/ffi.c src/arm/sysv.S \
src/arm/ffitarget.h src/avr32/ffi.c src/avr32/sysv.S \
diff --git a/Makefile.in b/Makefile.in
index 220e6fd..bf77c44 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -593,7 +593,7 @@ ACLOCAL_AMFLAGS = -I m4
SUBDIRS = include testsuite man
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
src/aarch64/ffi.c src/aarch64/ffitarget.h src/aarch64/sysv.S \
- src/alpha/ffi.c src/alpha/osf.S \
+ build-ios.sh src/alpha/ffi.c src/alpha/osf.S \
src/alpha/ffitarget.h src/arc/ffi.c src/arc/arcompact.S \
src/arc/ffitarget.h src/arm/ffi.c src/arm/sysv.S \
src/arm/ffitarget.h src/avr32/ffi.c src/avr32/sysv.S \
diff --git a/README b/README
index 449b02a..938ae63 100644
--- a/README
+++ b/README
@@ -51,7 +51,6 @@ tested:
|-----------------+------------------+-------------------------|
| Architecture | Operating System | Compiler |
|-----------------+------------------+-------------------------|
-| AArch64 (ARM64) | iOS | Clang |
| AArch64 | Linux | GCC |
| Alpha | Linux | GCC |
| Alpha | Tru64 | GCC |
@@ -170,10 +169,8 @@ History
See the ChangeLog files for details.
3.0.14 TBD
- Add Aarch (ARM64) iOS support.
- Add m88k and DEC VAX support.
Add Nios II support.
- Add Power ELFv2 Linux support.
+ Add m88k and DEC VAX support.
Fix MIPS N32 ABI bug.
Various FreeBSD and UltraSPARC IIi fixes.
diff --git a/build-ios.sh b/build-ios.sh
new file mode 100755
index 0000000..3dea242
--- /dev/null
+++ b/build-ios.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+PLATFORM_IOS=/Developer/Platforms/iPhoneOS.platform/
+PLATFORM_IOS_SIM=/Developer/Platforms/iPhoneSimulator.platform/
+SDK_IOS_VERSION="4.2"
+MIN_IOS_VERSION="3.0"
+OUTPUT_DIR="universal-ios"
+
+build_target () {
+ local platform=$1
+ local sdk=$2
+ local arch=$3
+ local triple=$4
+ local builddir=$5
+
+ mkdir -p "${builddir}"
+ pushd "${builddir}"
+ export CC="${platform}"/Developer/usr/bin/gcc-4.2
+ export CFLAGS="-arch ${arch} -isysroot ${sdk} -miphoneos-version-min=${MIN_IOS_VERSION}"
+ ../configure --host=${triple} && make
+ popd
+}
+
+# Build all targets
+build_target "${PLATFORM_IOS}" "${PLATFORM_IOS}/Developer/SDKs/iPhoneOS${SDK_IOS_VERSION}.sdk/" armv6 arm-apple-darwin10 armv6-ios
+build_target "${PLATFORM_IOS}" "${PLATFORM_IOS}/Developer/SDKs/iPhoneOS${SDK_IOS_VERSION}.sdk/" armv7 arm-apple-darwin10 armv7-ios
+build_target "${PLATFORM_IOS_SIM}" "${PLATFORM_IOS_SIM}/Developer/SDKs/iPhoneSimulator${SDK_IOS_VERSION}.sdk/" i386 i386-apple-darwin10 i386-ios-sim
+
+# Create universal output directories
+mkdir -p "${OUTPUT_DIR}"
+mkdir -p "${OUTPUT_DIR}/include"
+mkdir -p "${OUTPUT_DIR}/include/armv6"
+mkdir -p "${OUTPUT_DIR}/include/armv7"
+mkdir -p "${OUTPUT_DIR}/include/i386"
+
+# Create the universal binary
+lipo -create armv6-ios/.libs/libffi.a armv7-ios/.libs/libffi.a i386-ios-sim/.libs/libffi.a -output "${OUTPUT_DIR}/libffi.a"
+
+# Copy in the headers
+copy_headers () {
+ local src=$1
+ local dest=$2
+
+ # Fix non-relative header reference
+ sed 's/<ffitarget.h>/"ffitarget.h"/' < "${src}/include/ffi.h" > "${dest}/ffi.h"
+ cp "${src}/include/ffitarget.h" "${dest}"
+}
+
+copy_headers armv6-ios "${OUTPUT_DIR}/include/armv6"
+copy_headers armv7-ios "${OUTPUT_DIR}/include/armv7"
+copy_headers i386-ios-sim "${OUTPUT_DIR}/include/i386"
+
+# Create top-level header
+(
+cat << EOF
+#ifdef __arm__
+ #include <arm/arch.h>
+ #ifdef _ARM_ARCH_6
+ #include "include/armv6/ffi.h"
+ #elif _ARM_ARCH_7
+ #include "include/armv7/ffi.h"
+ #endif
+#elif defined(__i386__)
+ #include "include/i386/ffi.h"
+#endif
+EOF
+) > "${OUTPUT_DIR}/ffi.h"
diff --git a/generate-ios-source-and-headers.py b/generate-ios-source-and-headers.py
index 4d4d0ae..c2bca73 100644
--- a/generate-ios-source-and-headers.py
+++ b/generate-ios-source-and-headers.py
@@ -1,40 +1,29 @@
#!/usr/bin/env python
+
import subprocess
import re
import os
import errno
import collections
+import sys
class Platform(object):
pass
sdk_re = re.compile(r'.*-sdk ([a-zA-Z0-9.]*)')
-
def sdkinfo(sdkname):
ret = {}
for line in subprocess.Popen(['xcodebuild', '-sdk', sdkname, '-version'], stdout=subprocess.PIPE).stdout:
kv = line.strip().split(': ', 1)
if len(kv) == 2:
- k, v = kv
+ k,v = kv
ret[k] = v
return ret
-
-def mkdir_p(path):
- try:
- os.makedirs(path)
- except OSError as exc: # Python >2.5
- if exc.errno == errno.EEXIST:
- pass
- else:
- raise
-
-
sim_sdk_info = sdkinfo('iphonesimulator')
device_sdk_info = sdkinfo('iphoneos')
-
def latest_sdks():
latest_sim = None
latest_device = None
@@ -50,62 +39,36 @@ def latest_sdks():
sim_sdk, device_sdk = latest_sdks()
-
class simulator_platform(Platform):
- sdk = 'iphonesimulator'
+ sdk='iphonesimulator'
arch = 'i386'
- short_arch = arch
- triple = 'i386-apple-darwin11'
+ name = 'simulator'
+ triple = 'i386-apple-darwin10'
sdkroot = sim_sdk_info['Path']
- version_min = '5.1.1'
- prefix = "#ifdef __i386__\n\n"
+ prefix = "#if !defined(__arm__) && defined(__i386__)\n\n"
suffix = "\n\n#endif"
-
-class simulator64_platform(Platform):
- sdk = 'iphonesimulator'
- arch = 'x86_64'
- short_arch = arch
- triple = 'x86_64-apple-darwin13'
- sdkroot = sim_sdk_info['Path']
- version_min = '7.0'
-
- prefix = "#ifdef __x86_64__\n\n"
- suffix = "\n\n#endif"
-
-
class device_platform(Platform):
- sdk = 'iphoneos'
+ sdk='iphoneos'
+ name = 'ios'
arch = 'armv7'
- short_arch = 'arm'
- triple = 'arm-apple-darwin11'
+ triple = 'arm-apple-darwin10'
sdkroot = device_sdk_info['Path']
- version_min = '5.1.1'
prefix = "#ifdef __arm__\n\n"
suffix = "\n\n#endif"
-class device64_platform(Platform):
- sdk = 'iphoneos'
- arch = 'arm64'
- short_arch = 'arm64'
- triple = 'aarch64-apple-darwin13'
- sdkroot = device_sdk_info['Path']
- version_min = '7.0'
-
- prefix = "#ifdef __arm64__\n\n"
- suffix = "\n\n#endif"
-
-
def move_file(src_dir, dst_dir, filename, file_suffix=None, prefix='', suffix=''):
- mkdir_p(dst_dir)
+ if not os.path.exists(dst_dir):
+ os.makedirs(dst_dir)
+
out_filename = filename
if file_suffix:
split_name = os.path.splitext(filename)
- out_filename = "%s_%s%s" % (split_name[0], file_suffix, split_name[1])
+ out_filename = "%s_%s%s" % (split_name[0], file_suffix, split_name[1])
with open(os.path.join(src_dir, filename)) as in_file:
with open(os.path.join(dst_dir, out_filename), 'w') as out_file:
@@ -119,15 +82,16 @@ def move_file(src_dir, dst_dir, filename, file_suffix=None, prefix='', suffix=''
headers_seen = collections.defaultdict(set)
-
def move_source_tree(src_dir, dest_dir, dest_include_dir, arch=None, prefix=None, suffix=None):
for root, dirs, files in os.walk(src_dir, followlinks=True):
- relroot = os.path.relpath(root, src_dir)
+ relroot = os.path.relpath(root,src_dir)
def move_dir(arch, prefix='', suffix='', files=[]):
for file in files:
+ file_suffix = None
if file.endswith('.h'):
if dest_include_dir:
+ file_suffix = arch
if arch:
headers_seen[file].add(arch)
move_file(root, dest_include_dir, file, arch, prefix=prefix, suffix=suffix)
@@ -145,66 +109,46 @@ def move_source_tree(src_dir, dest_dir, dest_include_dir, arch=None, prefix=None
move_dir(arch='arm',
prefix="#ifdef __arm__\n\n",
suffix="\n\n#endif",
- files=['sysv.S', 'trampoline.S', 'ffi.c'])
- elif relroot == 'aarch64':
- move_dir(arch='arm64',
- prefix="#ifdef __arm64__\n\n",
- suffix="\n\n#endif",
- files=['sysv.S', 'ffi.c'])
+ files=files)
elif relroot == 'x86':
move_dir(arch='i386',
- prefix="#ifdef __i386__\n\n",
+ prefix="#if !defined(__arm__) && defined(__i386__)\n\n",
suffix="\n\n#endif",
- files=['darwin.S', 'ffi.c'])
- move_dir(arch='x86_64',
- prefix="#ifdef __x86_64__\n\n",
- suffix="\n\n#endif",
- files=['darwin64.S', 'ffi64.c'])
-
+ files=files)
def build_target(platform):
def xcrun_cmd(cmd):
return subprocess.check_output(['xcrun', '-sdk', platform.sdkroot, '-find', cmd]).strip()
- build_dir = 'build_' + platform.short_arch
- mkdir_p(build_dir)
- env = dict(CC=xcrun_cmd('clang'),
- LD=xcrun_cmd('ld'),
- CFLAGS='-arch %s -isysroot %s -miphoneos-version-min=%s' % (platform.arch, platform.sdkroot, platform.version_min))
- working_dir = os.getcwd()
- try:
- os.chdir(build_dir)
- subprocess.check_call(['../configure', '-host', platform.triple], env=env)
- move_source_tree('.', None, '../ios/include',
- arch=platform.short_arch,
- prefix=platform.prefix,
- suffix=platform.suffix)
- move_source_tree('./include', None, '../ios/include',
- arch=platform.short_arch,
- prefix=platform.prefix,
- suffix=platform.suffix)
- finally:
- os.chdir(working_dir)
-
- for header_name, archs in headers_seen.iteritems():
- basename, suffix = os.path.splitext(header_name)
-
-
-def make_tramp():
- with open('src/arm/trampoline.S', 'w') as tramp_out:
- p = subprocess.Popen(['bash', 'src/arm/gentramp.sh'], stdout=tramp_out)
- p.wait()
-
+ build_dir = 'build_' + platform.name
+ if not os.path.exists(build_dir):
+ os.makedirs(build_dir)
+ env = dict(CC=xcrun_cmd('clang'),
+ LD=xcrun_cmd('ld'),
+ CFLAGS='-arch %s -isysroot %s -miphoneos-version-min=4.0' % (platform.arch, platform.sdkroot))
+ working_dir=os.getcwd()
+ try:
+ os.chdir(build_dir)
+ subprocess.check_call(['../configure', '-host', platform.triple], env=env)
+ move_source_tree('.', None, '../ios/include',
+ arch=platform.arch,
+ prefix=platform.prefix,
+ suffix=platform.suffix)
+ move_source_tree('./include', None, '../ios/include',
+ arch=platform.arch,
+ prefix=platform.prefix,
+ suffix=platform.suffix)
+ finally:
+ os.chdir(working_dir)
+
+ for header_name, archs in headers_seen.iteritems():
+ basename, suffix = os.path.splitext(header_name)
def main():
- make_tramp()
-
move_source_tree('src', 'ios/src', 'ios/include')
move_source_tree('include', None, 'ios/include')
build_target(simulator_platform)
- build_target(simulator64_platform)
build_target(device_platform)
- build_target(device64_platform)
for header_name, archs in headers_seen.iteritems():
basename, suffix = os.path.splitext(header_name)
diff --git a/generate-osx-source-and-headers.py b/generate-osx-source-and-headers.py
index 97a732d..64313c1 100644
--- a/generate-osx-source-and-headers.py
+++ b/generate-osx-source-and-headers.py
@@ -4,36 +4,24 @@ import re
import os
import errno
import collections
-
+import sys
class Platform(object):
pass
sdk_re = re.compile(r'.*-sdk ([a-zA-Z0-9.]*)')
-
def sdkinfo(sdkname):
ret = {}
for line in subprocess.Popen(['xcodebuild', '-sdk', sdkname, '-version'], stdout=subprocess.PIPE).stdout:
kv = line.strip().split(': ', 1)
if len(kv) == 2:
- k, v = kv
+ k,v = kv
ret[k] = v
return ret
-
-def mkdir_p(path):
- try:
- os.makedirs(path)
- except OSError as exc: # Python >2.5
- if exc.errno == errno.EEXIST:
- pass
- else:
- raise
-
desktop_sdk_info = sdkinfo('macosx')
-
def latest_sdks():
latest_desktop = None
for line in subprocess.Popen(['xcodebuild', '-showsdks'], stdout=subprocess.PIPE).stdout:
@@ -46,38 +34,35 @@ def latest_sdks():
desktop_sdk = latest_sdks()
-
-class desktop32_platform(Platform):
- sdk = 'macosx'
+class desktop_platform_32(Platform):
+ sdk='macosx'
arch = 'i386'
name = 'mac32'
- triple = 'i386-apple-darwin11'
+ triple = 'i386-apple-darwin10'
sdkroot = desktop_sdk_info['Path']
- version_min = '10.7'
- prefix = "#ifdef __i386__\n\n"
+ prefix = "#if defined(__i386__) && !defined(__x86_64__)\n\n"
suffix = "\n\n#endif"
-
-class desktop64_platform(Platform):
- sdk = 'macosx'
+class desktop_platform_64(Platform):
+ sdk='macosx'
arch = 'x86_64'
name = 'mac'
- triple = 'x86_64-apple-darwin11'
+ triple = 'x86_64-apple-darwin10'
sdkroot = desktop_sdk_info['Path']
- version_min = '10.7'
- prefix = "#ifdef __x86_64__\n\n"
+ prefix = "#if !defined(__i386__) && defined(__x86_64__)\n\n"
suffix = "\n\n#endif"
-
def move_file(src_dir, dst_dir, filename, file_suffix=None, prefix='', suffix=''):
- mkdir_p(dst_dir)
+ if not os.path.exists(dst_dir):
+ os.makedirs(dst_dir)
+
out_filename = filename
if file_suffix:
split_name = os.path.splitext(filename)
- out_filename = "%s_%s%s" % (split_name[0], file_suffix, split_name[1])
+ out_filename = "%s_%s%s" % (split_name[0], file_suffix, split_name[1])
with open(os.path.join(src_dir, filename)) as in_file:
with open(os.path.join(dst_dir, out_filename), 'w') as out_file:
@@ -91,15 +76,16 @@ def move_file(src_dir, dst_dir, filename, file_suffix=None, prefix='', suffix=''
headers_seen = collections.defaultdict(set)
-
def move_source_tree(src_dir, dest_dir, dest_include_dir, arch=None, prefix=None, suffix=None):
for root, dirs, files in os.walk(src_dir, followlinks=True):
- relroot = os.path.relpath(root, src_dir)
+ relroot = os.path.relpath(root,src_dir)
def move_dir(arch, prefix='', suffix='', files=[]):
for file in files:
+ file_suffix = None
if file.endswith('.h'):
if dest_include_dir:
+ file_suffix = arch
if arch:
headers_seen[file].add(arch)
move_file(root, dest_include_dir, file, arch, prefix=prefix, suffix=suffix)
@@ -115,14 +101,13 @@ def move_source_tree(src_dir, dest_dir, dest_include_dir, arch=None, prefix=None
suffix=suffix)
elif relroot == 'x86':
move_dir(arch='i386',
- prefix="#ifdef __i386__\n\n",
+ prefix="#if defined(__i386__) && !defined(__x86_64__)\n\n",
suffix="\n\n#endif",
- files=['darwin.S', 'ffi.c'])
+ files=files)
move_dir(arch='x86_64',
- prefix="#ifdef __x86_64__\n\n",
+ prefix="#if !defined(__i386__) && defined(__x86_64__)\n\n",
suffix="\n\n#endif",
- files=['darwin64.S', 'ffi64.c'])
-
+ files=files)
def build_target(platform):
def xcrun_cmd(cmd):
@@ -133,8 +118,8 @@ def build_target(platform):
os.makedirs(build_dir)
env = dict(CC=xcrun_cmd('clang'),
LD=xcrun_cmd('ld'),
- CFLAGS='-arch %s -isysroot %s -mmacosx-version-min=%s' % (platform.arch, platform.sdkroot, platform.version_min))
- working_dir = os.getcwd()
+ CFLAGS='-arch %s -isysroot %s -mmacosx-version-min=10.6' % (platform.arch, platform.sdkroot))
+ working_dir=os.getcwd()
try:
os.chdir(build_dir)
subprocess.check_call(['../configure', '-host', platform.triple], env=env)
@@ -152,12 +137,11 @@ def build_target(platform):
for header_name, archs in headers_seen.iteritems():
basename, suffix = os.path.splitext(header_name)
-
def main():
move_source_tree('src', 'osx/src', 'osx/include')
move_source_tree('include', None, 'osx/include')
- build_target(desktop32_platform)
- build_target(desktop64_platform)
+ build_target(desktop_platform_32)
+ build_target(desktop_platform_64)
for header_name, archs in headers_seen.iteritems():
basename, suffix = os.path.splitext(header_name)
diff --git a/include/ffi_common.h b/include/ffi_common.h
index be10922..37f5a9e 100644
--- a/include/ffi_common.h
+++ b/include/ffi_common.h
@@ -48,7 +48,7 @@ char *alloca ();
#endif
/* Check for the existence of memcpy. */
-#if STDC_HEADERS || HAVE_STRING_H
+#if STDC_HEADERS
# include <string.h>
#else
# ifndef HAVE_MEMCPY
diff --git a/libffi.xcodeproj/project.pbxproj b/libffi.xcodeproj/project.pbxproj
index f763d0f..14c39a2 100644
--- a/libffi.xcodeproj/project.pbxproj
+++ b/libffi.xcodeproj/project.pbxproj
@@ -7,422 +7,382 @@
objects = {
/* Begin PBXBuildFile section */
- DB13B16A1849DF1E0010F42D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB13B1691849DF1E0010F42D /* Foundation.framework */; };
- DB13B1931849DF510010F42D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB13B1921849DF510010F42D /* Cocoa.framework */; };
- DB13B33D1849E0CE0010F42D /* ffi.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3301849E0CE0010F42D /* ffi.c */; };
- DB13B33E1849E0CE0010F42D /* sysv.S in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3311849E0CE0010F42D /* sysv.S */; };
- DB13B33F1849E0CE0010F42D /* trampoline.S in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3321849E0CE0010F42D /* trampoline.S */; };
- DB13B3401849E0CE0010F42D /* closures.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3331849E0CE0010F42D /* closures.c */; };
- DB13B3441849E0CE0010F42D /* prep_cif.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3371849E0CE0010F42D /* prep_cif.c */; };
- DB13B3451849E0CE0010F42D /* raw_api.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3381849E0CE0010F42D /* raw_api.c */; };
- DB13B3461849E0CE0010F42D /* types.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3391849E0CE0010F42D /* types.c */; };
- DB13B3471849E0CE0010F42D /* darwin.S in Sources */ = {isa = PBXBuildFile; fileRef = DB13B33B1849E0CE0010F42D /* darwin.S */; };
- DB13B3481849E0CE0010F42D /* ffi.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B33C1849E0CE0010F42D /* ffi.c */; };
- DB13B3631849E0FF0010F42D /* ffi.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B34C1849E0FF0010F42D /* ffi.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B3641849E0FF0010F42D /* ffi_common.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B34D1849E0FF0010F42D /* ffi_common.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B3651849E0FF0010F42D /* ffi_i386.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B34E1849E0FF0010F42D /* ffi_i386.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B3661849E0FF0010F42D /* ffi_x86_64.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B34F1849E0FF0010F42D /* ffi_x86_64.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B3671849E0FF0010F42D /* fficonfig.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B3501849E0FF0010F42D /* fficonfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B3681849E0FF0010F42D /* fficonfig_i386.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B3511849E0FF0010F42D /* fficonfig_i386.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B3691849E0FF0010F42D /* fficonfig_x86_64.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B3521849E0FF0010F42D /* fficonfig_x86_64.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B36A1849E0FF0010F42D /* ffitarget.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B3531849E0FF0010F42D /* ffitarget.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B36B1849E0FF0010F42D /* ffitarget_i386.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B3541849E0FF0010F42D /* ffitarget_i386.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B36C1849E0FF0010F42D /* ffitarget_x86_64.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13B3551849E0FF0010F42D /* ffitarget_x86_64.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DB13B36D1849E0FF0010F42D /* closures.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3571849E0FF0010F42D /* closures.c */; };
- DB13B3711849E0FF0010F42D /* prep_cif.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B35B1849E0FF0010F42D /* prep_cif.c */; };
- DB13B3721849E0FF0010F42D /* raw_api.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B35C1849E0FF0010F42D /* raw_api.c */; };
- DB13B3731849E0FF0010F42D /* types.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B35D1849E0FF0010F42D /* types.c */; };
- DB13B3741849E0FF0010F42D /* darwin.S in Sources */ = {isa = PBXBuildFile; fileRef = DB13B35F1849E0FF0010F42D /* darwin.S */; };
- DB13B3751849E0FF0010F42D /* darwin64.S in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3601849E0FF0010F42D /* darwin64.S */; };
- DB13B3761849E0FF0010F42D /* ffi.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3611849E0FF0010F42D /* ffi.c */; };
- DB13B3771849E0FF0010F42D /* ffi64.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B3621849E0FF0010F42D /* ffi64.c */; };
- DB13B381184A50CC0010F42D /* ffi.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B37F184A50CC0010F42D /* ffi.c */; };
- DB13B382184A50CC0010F42D /* sysv.S in Sources */ = {isa = PBXBuildFile; fileRef = DB13B380184A50CC0010F42D /* sysv.S */; };
- DB13B385184A50D60010F42D /* darwin64.S in Sources */ = {isa = PBXBuildFile; fileRef = DB13B383184A50D60010F42D /* darwin64.S */; };
- DB13B386184A50D60010F42D /* ffi64.c in Sources */ = {isa = PBXBuildFile; fileRef = DB13B384184A50D60010F42D /* ffi64.c */; };
- DB13B387184A64FA0010F42D /* ffi.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B3241849E0CE0010F42D /* ffi.h */; };
- DB13B388184A64FA0010F42D /* ffi_arm.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B3251849E0CE0010F42D /* ffi_arm.h */; };
- DB13B389184A64FA0010F42D /* ffi_arm64.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B378184A50BF0010F42D /* ffi_arm64.h */; };
- DB13B38A184A64FA0010F42D /* ffi_common.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B3261849E0CE0010F42D /* ffi_common.h */; };
- DB13B38B184A64FA0010F42D /* ffi_i386.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B3271849E0CE0010F42D /* ffi_i386.h */; };
- DB13B38C184A64FA0010F42D /* ffi_x86_64.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B379184A50BF0010F42D /* ffi_x86_64.h */; };
- DB13B38D184A64FA0010F42D /* fficonfig.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B3281849E0CE0010F42D /* fficonfig.h */; };
- DB13B38E184A64FA0010F42D /* fficonfig_arm.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B3291849E0CE0010F42D /* fficonfig_arm.h */; };
- DB13B38F184A64FA0010F42D /* fficonfig_arm64.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B37A184A50BF0010F42D /* fficonfig_arm64.h */; };
- DB13B390184A64FA0010F42D /* fficonfig_i386.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B32A1849E0CE0010F42D /* fficonfig_i386.h */; };
- DB13B391184A64FA0010F42D /* fficonfig_x86_64.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B37B184A50BF0010F42D /* fficonfig_x86_64.h */; };
- DB13B392184A64FA0010F42D /* ffitarget.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B32B1849E0CE0010F42D /* ffitarget.h */; };
- DB13B393184A64FA0010F42D /* ffitarget_arm.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B32C1849E0CE0010F42D /* ffitarget_arm.h */; };
- DB13B394184A64FA0010F42D /* ffitarget_arm64.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B37C184A50BF0010F42D /* ffitarget_arm64.h */; };
- DB13B395184A64FA0010F42D /* ffitarget_i386.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B32D1849E0CE0010F42D /* ffitarget_i386.h */; };
- DB13B396184A64FA0010F42D /* ffitarget_x86_64.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB13B37D184A50BF0010F42D /* ffitarget_x86_64.h */; };
+ 6C43CBDC1534F76F00162364 /* ffi.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CBBD1534F76F00162364 /* ffi.c */; };
+ 6C43CBDD1534F76F00162364 /* sysv.S in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CBBF1534F76F00162364 /* sysv.S */; };
+ 6C43CBDE1534F76F00162364 /* trampoline.S in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CBC01534F76F00162364 /* trampoline.S */; };
+ 6C43CBE61534F76F00162364 /* darwin.S in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CBC91534F76F00162364 /* darwin.S */; };
+ 6C43CBE81534F76F00162364 /* ffi.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CBCB1534F76F00162364 /* ffi.c */; };
+ 6C43CC1F1534F77800162364 /* darwin.S in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC051534F77800162364 /* darwin.S */; };
+ 6C43CC201534F77800162364 /* darwin64.S in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC061534F77800162364 /* darwin64.S */; };
+ 6C43CC211534F77800162364 /* ffi.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC071534F77800162364 /* ffi.c */; };
+ 6C43CC221534F77800162364 /* ffi64.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC081534F77800162364 /* ffi64.c */; };
+ 6C43CC2F1534F7BE00162364 /* closures.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC281534F7BE00162364 /* closures.c */; };
+ 6C43CC301534F7BE00162364 /* closures.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC281534F7BE00162364 /* closures.c */; };
+ 6C43CC351534F7BE00162364 /* java_raw_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC2B1534F7BE00162364 /* java_raw_api.c */; };
+ 6C43CC361534F7BE00162364 /* java_raw_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC2B1534F7BE00162364 /* java_raw_api.c */; };
+ 6C43CC371534F7BE00162364 /* prep_cif.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC2C1534F7BE00162364 /* prep_cif.c */; };
+ 6C43CC381534F7BE00162364 /* prep_cif.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC2C1534F7BE00162364 /* prep_cif.c */; };
+ 6C43CC391534F7BE00162364 /* raw_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC2D1534F7BE00162364 /* raw_api.c */; };
+ 6C43CC3A1534F7BE00162364 /* raw_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC2D1534F7BE00162364 /* raw_api.c */; };
+ 6C43CC3B1534F7BE00162364 /* types.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC2E1534F7BE00162364 /* types.c */; };
+ 6C43CC3C1534F7BE00162364 /* types.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C43CC2E1534F7BE00162364 /* types.c */; };
+ 6C43CC971535032600162364 /* ffi.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC8D1535032600162364 /* ffi.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CC981535032600162364 /* ffi_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC8E1535032600162364 /* ffi_common.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CC991535032600162364 /* ffi_i386.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC8F1535032600162364 /* ffi_i386.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CC9A1535032600162364 /* ffi_x86_64.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC901535032600162364 /* ffi_x86_64.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CC9B1535032600162364 /* fficonfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC911535032600162364 /* fficonfig.h */; };
+ 6C43CC9C1535032600162364 /* fficonfig_i386.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC921535032600162364 /* fficonfig_i386.h */; };
+ 6C43CC9D1535032600162364 /* fficonfig_x86_64.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC931535032600162364 /* fficonfig_x86_64.h */; };
+ 6C43CC9E1535032600162364 /* ffitarget.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC941535032600162364 /* ffitarget.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CC9F1535032600162364 /* ffitarget_i386.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC951535032600162364 /* ffitarget_i386.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CCA01535032600162364 /* ffitarget_x86_64.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CC961535032600162364 /* ffitarget_x86_64.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CCAD1535039600162364 /* ffi.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCA21535039600162364 /* ffi.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CCAE1535039600162364 /* ffi_armv7.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCA31535039600162364 /* ffi_armv7.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CCAF1535039600162364 /* ffi_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCA41535039600162364 /* ffi_common.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CCB01535039600162364 /* ffi_i386.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCA51535039600162364 /* ffi_i386.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CCB11535039600162364 /* fficonfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCA61535039600162364 /* fficonfig.h */; };
+ 6C43CCB21535039600162364 /* fficonfig_armv7.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCA71535039600162364 /* fficonfig_armv7.h */; };
+ 6C43CCB31535039600162364 /* fficonfig_i386.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCA81535039600162364 /* fficonfig_i386.h */; };
+ 6C43CCB41535039600162364 /* ffitarget.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCA91535039600162364 /* ffitarget.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CCB51535039600162364 /* ffitarget_arm.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCAA1535039600162364 /* ffitarget_arm.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CCB61535039600162364 /* ffitarget_armv7.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCAB1535039600162364 /* ffitarget_armv7.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C43CCB71535039600162364 /* ffitarget_i386.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C43CCAC1535039600162364 /* ffitarget_i386.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
-/* Begin PBXCopyFilesBuildPhase section */
- DB13B1641849DF1E0010F42D /* CopyFiles */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 8;
- dstPath = "include/$(PRODUCT_NAME)";
- dstSubfolderSpec = 16;
- files = (
- DB13B387184A64FA0010F42D /* ffi.h in CopyFiles */,
- DB13B388184A64FA0010F42D /* ffi_arm.h in CopyFiles */,
- DB13B389184A64FA0010F42D /* ffi_arm64.h in CopyFiles */,
- DB13B38A184A64FA0010F42D /* ffi_common.h in CopyFiles */,
- DB13B38B184A64FA0010F42D /* ffi_i386.h in CopyFiles */,
- DB13B38C184A64FA0010F42D /* ffi_x86_64.h in CopyFiles */,
- DB13B38D184A64FA0010F42D /* fficonfig.h in CopyFiles */,
- DB13B38E184A64FA0010F42D /* fficonfig_arm.h in CopyFiles */,
- DB13B38F184A64FA0010F42D /* fficonfig_arm64.h in CopyFiles */,
- DB13B390184A64FA0010F42D /* fficonfig_i386.h in CopyFiles */,
- DB13B391184A64FA0010F42D /* fficonfig_x86_64.h in CopyFiles */,
- DB13B392184A64FA0010F42D /* ffitarget.h in CopyFiles */,
- DB13B393184A64FA0010F42D /* ffitarget_arm.h in CopyFiles */,
- DB13B394184A64FA0010F42D /* ffitarget_arm64.h in CopyFiles */,
- DB13B395184A64FA0010F42D /* ffitarget_i386.h in CopyFiles */,
- DB13B396184A64FA0010F42D /* ffitarget_x86_64.h in CopyFiles */,
- );
- runOnlyForDeploymentPostprocessing = 1;
- };
-/* End PBXCopyFilesBuildPhase section */
-
/* Begin PBXFileReference section */
- DB13B1661849DF1E0010F42D /* libffi.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libffi.a; sourceTree = BUILT_PRODUCTS_DIR; };
- DB13B1691849DF1E0010F42D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- DB13B1911849DF510010F42D /* ffi.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = ffi.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
- DB13B1921849DF510010F42D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
- DB13B3241849E0CE0010F42D /* ffi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi.h; sourceTree = "<group>"; };
- DB13B3251849E0CE0010F42D /* ffi_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_arm.h; sourceTree = "<group>"; };
- DB13B3261849E0CE0010F42D /* ffi_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_common.h; sourceTree = "<group>"; };
- DB13B3271849E0CE0010F42D /* ffi_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_i386.h; sourceTree = "<group>"; };
- DB13B3281849E0CE0010F42D /* fficonfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig.h; sourceTree = "<group>"; };
- DB13B3291849E0CE0010F42D /* fficonfig_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_arm.h; sourceTree = "<group>"; };
- DB13B32A1849E0CE0010F42D /* fficonfig_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_i386.h; sourceTree = "<group>"; };
- DB13B32B1849E0CE0010F42D /* ffitarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget.h; sourceTree = "<group>"; };
- DB13B32C1849E0CE0010F42D /* ffitarget_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_arm.h; sourceTree = "<group>"; };
- DB13B32D1849E0CE0010F42D /* ffitarget_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_i386.h; sourceTree = "<group>"; };
- DB13B3301849E0CE0010F42D /* ffi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi.c; sourceTree = "<group>"; };
- DB13B3311849E0CE0010F42D /* sysv.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = sysv.S; sourceTree = "<group>"; };
- DB13B3321849E0CE0010F42D /* trampoline.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = trampoline.S; sourceTree = "<group>"; };
- DB13B3331849E0CE0010F42D /* closures.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = closures.c; sourceTree = "<group>"; };
- DB13B3351849E0CE0010F42D /* dlmalloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dlmalloc.c; sourceTree = "<group>"; };
- DB13B3371849E0CE0010F42D /* prep_cif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = prep_cif.c; sourceTree = "<group>"; };
- DB13B3381849E0CE0010F42D /* raw_api.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = raw_api.c; sourceTree = "<group>"; };
- DB13B3391849E0CE0010F42D /* types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = types.c; sourceTree = "<group>"; };
- DB13B33B1849E0CE0010F42D /* darwin.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = darwin.S; sourceTree = "<group>"; };
- DB13B33C1849E0CE0010F42D /* ffi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi.c; sourceTree = "<group>"; };
- DB13B34C1849E0FF0010F42D /* ffi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi.h; sourceTree = "<group>"; };
- DB13B34D1849E0FF0010F42D /* ffi_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_common.h; sourceTree = "<group>"; };
- DB13B34E1849E0FF0010F42D /* ffi_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_i386.h; sourceTree = "<group>"; };
- DB13B34F1849E0FF0010F42D /* ffi_x86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_x86_64.h; sourceTree = "<group>"; };
- DB13B3501849E0FF0010F42D /* fficonfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig.h; sourceTree = "<group>"; };
- DB13B3511849E0FF0010F42D /* fficonfig_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_i386.h; sourceTree = "<group>"; };
- DB13B3521849E0FF0010F42D /* fficonfig_x86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_x86_64.h; sourceTree = "<group>"; };
- DB13B3531849E0FF0010F42D /* ffitarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget.h; sourceTree = "<group>"; };
- DB13B3541849E0FF0010F42D /* ffitarget_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_i386.h; sourceTree = "<group>"; };
- DB13B3551849E0FF0010F42D /* ffitarget_x86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_x86_64.h; sourceTree = "<group>"; };
- DB13B3571849E0FF0010F42D /* closures.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = closures.c; sourceTree = "<group>"; };
- DB13B3591849E0FF0010F42D /* dlmalloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dlmalloc.c; sourceTree = "<group>"; };
- DB13B35B1849E0FF0010F42D /* prep_cif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = prep_cif.c; sourceTree = "<group>"; };
- DB13B35C1849E0FF0010F42D /* raw_api.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = raw_api.c; sourceTree = "<group>"; };
- DB13B35D1849E0FF0010F42D /* types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = types.c; sourceTree = "<group>"; };
- DB13B35F1849E0FF0010F42D /* darwin.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = darwin.S; sourceTree = "<group>"; };
- DB13B3601849E0FF0010F42D /* darwin64.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = darwin64.S; sourceTree = "<group>"; };
- DB13B3611849E0FF0010F42D /* ffi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi.c; sourceTree = "<group>"; };
- DB13B3621849E0FF0010F42D /* ffi64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi64.c; sourceTree = "<group>"; };
- DB13B378184A50BF0010F42D /* ffi_arm64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_arm64.h; sourceTree = "<group>"; };
- DB13B379184A50BF0010F42D /* ffi_x86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_x86_64.h; sourceTree = "<group>"; };
- DB13B37A184A50BF0010F42D /* fficonfig_arm64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_arm64.h; sourceTree = "<group>"; };
- DB13B37B184A50BF0010F42D /* fficonfig_x86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_x86_64.h; sourceTree = "<group>"; };
- DB13B37C184A50BF0010F42D /* ffitarget_arm64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_arm64.h; sourceTree = "<group>"; };
- DB13B37D184A50BF0010F42D /* ffitarget_x86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_x86_64.h; sourceTree = "<group>"; };
- DB13B37F184A50CC0010F42D /* ffi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi.c; sourceTree = "<group>"; };
- DB13B380184A50CC0010F42D /* sysv.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = sysv.S; sourceTree = "<group>"; };
- DB13B383184A50D60010F42D /* darwin64.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = darwin64.S; sourceTree = "<group>"; };
- DB13B384184A50D60010F42D /* ffi64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi64.c; sourceTree = "<group>"; };
+ 6C43CB3D1534E9D100162364 /* libffi.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libffi.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ 6C43CBBD1534F76F00162364 /* ffi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi.c; sourceTree = "<group>"; };
+ 6C43CBBF1534F76F00162364 /* sysv.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = sysv.S; sourceTree = "<group>"; };
+ 6C43CBC01534F76F00162364 /* trampoline.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = trampoline.S; sourceTree = "<group>"; };
+ 6C43CBC91534F76F00162364 /* darwin.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = darwin.S; sourceTree = "<group>"; };
+ 6C43CBCB1534F76F00162364 /* ffi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi.c; sourceTree = "<group>"; };
+ 6C43CC051534F77800162364 /* darwin.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = darwin.S; sourceTree = "<group>"; };
+ 6C43CC061534F77800162364 /* darwin64.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = darwin64.S; sourceTree = "<group>"; };
+ 6C43CC071534F77800162364 /* ffi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi.c; sourceTree = "<group>"; };
+ 6C43CC081534F77800162364 /* ffi64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ffi64.c; sourceTree = "<group>"; };
+ 6C43CC281534F7BE00162364 /* closures.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = closures.c; path = src/closures.c; sourceTree = SOURCE_ROOT; };
+ 6C43CC2B1534F7BE00162364 /* java_raw_api.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = java_raw_api.c; path = src/java_raw_api.c; sourceTree = SOURCE_ROOT; };
+ 6C43CC2C1534F7BE00162364 /* prep_cif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = prep_cif.c; path = src/prep_cif.c; sourceTree = SOURCE_ROOT; };
+ 6C43CC2D1534F7BE00162364 /* raw_api.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = raw_api.c; path = src/raw_api.c; sourceTree = SOURCE_ROOT; };
+ 6C43CC2E1534F7BE00162364 /* types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = types.c; path = src/types.c; sourceTree = SOURCE_ROOT; };
+ 6C43CC8D1535032600162364 /* ffi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi.h; sourceTree = "<group>"; };
+ 6C43CC8E1535032600162364 /* ffi_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_common.h; sourceTree = "<group>"; };
+ 6C43CC8F1535032600162364 /* ffi_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_i386.h; sourceTree = "<group>"; };
+ 6C43CC901535032600162364 /* ffi_x86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_x86_64.h; sourceTree = "<group>"; };
+ 6C43CC911535032600162364 /* fficonfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig.h; sourceTree = "<group>"; };
+ 6C43CC921535032600162364 /* fficonfig_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_i386.h; sourceTree = "<group>"; };
+ 6C43CC931535032600162364 /* fficonfig_x86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_x86_64.h; sourceTree = "<group>"; };
+ 6C43CC941535032600162364 /* ffitarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget.h; sourceTree = "<group>"; };
+ 6C43CC951535032600162364 /* ffitarget_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_i386.h; sourceTree = "<group>"; };
+ 6C43CC961535032600162364 /* ffitarget_x86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_x86_64.h; sourceTree = "<group>"; };
+ 6C43CCA21535039600162364 /* ffi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi.h; sourceTree = "<group>"; };
+ 6C43CCA31535039600162364 /* ffi_armv7.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_armv7.h; sourceTree = "<group>"; };
+ 6C43CCA41535039600162364 /* ffi_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_common.h; sourceTree = "<group>"; };
+ 6C43CCA51535039600162364 /* ffi_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffi_i386.h; sourceTree = "<group>"; };
+ 6C43CCA61535039600162364 /* fficonfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig.h; sourceTree = "<group>"; };
+ 6C43CCA71535039600162364 /* fficonfig_armv7.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_armv7.h; sourceTree = "<group>"; };
+ 6C43CCA81535039600162364 /* fficonfig_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fficonfig_i386.h; sourceTree = "<group>"; };
+ 6C43CCA91535039600162364 /* ffitarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget.h; sourceTree = "<group>"; };
+ 6C43CCAA1535039600162364 /* ffitarget_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_arm.h; sourceTree = "<group>"; };
+ 6C43CCAB1535039600162364 /* ffitarget_armv7.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_armv7.h; sourceTree = "<group>"; };
+ 6C43CCAC1535039600162364 /* ffitarget_i386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffitarget_i386.h; sourceTree = "<group>"; };
+ F6F980BA147386130008F121 /* libffi.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libffi.a; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
- DB13B1631849DF1E0010F42D /* Frameworks */ = {
+ 6C43CB3A1534E9D100162364 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- DB13B16A1849DF1E0010F42D /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- DB13B18E1849DF510010F42D /* Frameworks */ = {
+ F6F980B7147386130008F121 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- DB13B1931849DF510010F42D /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- DB13B15B1849DEB70010F42D = {
+ 6C43CBAF1534F76F00162364 /* iOS */ = {
isa = PBXGroup;
children = (
- DB13B3221849E0CE0010F42D /* ios */,
- DB13B34A1849E0FF0010F42D /* osx */,
- DB13B1681849DF1E0010F42D /* Frameworks */,
- DB13B1671849DF1E0010F42D /* Products */,
+ 6C43CCA11535039600162364 /* include */,
+ 6C43CBBB1534F76F00162364 /* src */,
);
+ name = iOS;
+ path = ios;
sourceTree = "<group>";
};
- DB13B1671849DF1E0010F42D /* Products */ = {
+ 6C43CBBB1534F76F00162364 /* src */ = {
isa = PBXGroup;
children = (
- DB13B1661849DF1E0010F42D /* libffi.a */,
- DB13B1911849DF510010F42D /* ffi.dylib */,
+ 6C43CBC81534F76F00162364 /* x86 */,
+ 6C43CBBC1534F76F00162364 /* arm */,
);
- name = Products;
+ path = src;
sourceTree = "<group>";
};
- DB13B1681849DF1E0010F42D /* Frameworks */ = {
+ 6C43CBBC1534F76F00162364 /* arm */ = {
isa = PBXGroup;
children = (
- DB13B1691849DF1E0010F42D /* Foundation.framework */,
- DB13B1921849DF510010F42D /* Cocoa.framework */,
+ 6C43CBBD1534F76F00162364 /* ffi.c */,
+ 6C43CBBF1534F76F00162364 /* sysv.S */,
+ 6C43CBC01534F76F00162364 /* trampoline.S */,
);
- name = Frameworks;
+ path = arm;
sourceTree = "<group>";
};
- DB13B3221849E0CE0010F42D /* ios */ = {
+ 6C43CBC81534F76F00162364 /* x86 */ = {
isa = PBXGroup;
children = (
- DB13B3231849E0CE0010F42D /* include */,
- DB13B32E1849E0CE0010F42D /* src */,
+ 6C43CBC91534F76F00162364 /* darwin.S */,
+ 6C43CBCB1534F76F00162364 /* ffi.c */,
);
- path = ios;
+ path = x86;
sourceTree = "<group>";
};
- DB13B3231849E0CE0010F42D /* include */ = {
+ 6C43CBF01534F77800162364 /* OS X */ = {
isa = PBXGroup;
children = (
- DB13B3241849E0CE0010F42D /* ffi.h */,
- DB13B3251849E0CE0010F42D /* ffi_arm.h */,
- DB13B378184A50BF0010F42D /* ffi_arm64.h */,
- DB13B3261849E0CE0010F42D /* ffi_common.h */,
- DB13B3271849E0CE0010F42D /* ffi_i386.h */,
- DB13B379184A50BF0010F42D /* ffi_x86_64.h */,
- DB13B3281849E0CE0010F42D /* fficonfig.h */,
- DB13B3291849E0CE0010F42D /* fficonfig_arm.h */,
- DB13B37A184A50BF0010F42D /* fficonfig_arm64.h */,
- DB13B32A1849E0CE0010F42D /* fficonfig_i386.h */,
- DB13B37B184A50BF0010F42D /* fficonfig_x86_64.h */,
- DB13B32B1849E0CE0010F42D /* ffitarget.h */,
- DB13B32C1849E0CE0010F42D /* ffitarget_arm.h */,
- DB13B37C184A50BF0010F42D /* ffitarget_arm64.h */,
- DB13B32D1849E0CE0010F42D /* ffitarget_i386.h */,
- DB13B37D184A50BF0010F42D /* ffitarget_x86_64.h */,
+ 6C43CC8C1535032600162364 /* include */,
+ 6C43CBFC1534F77800162364 /* src */,
);
- path = include;
+ name = "OS X";
+ path = osx;
sourceTree = "<group>";
};
- DB13B32E1849E0CE0010F42D /* src */ = {
+ 6C43CBFC1534F77800162364 /* src */ = {
isa = PBXGroup;
children = (
- DB13B37E184A50CC0010F42D /* aarch64 */,
- DB13B32F1849E0CE0010F42D /* arm */,
- DB13B3331849E0CE0010F42D /* closures.c */,
- DB13B3351849E0CE0010F42D /* dlmalloc.c */,
- DB13B3371849E0CE0010F42D /* prep_cif.c */,
- DB13B3381849E0CE0010F42D /* raw_api.c */,
- DB13B3391849E0CE0010F42D /* types.c */,
- DB13B33A1849E0CE0010F42D /* x86 */,
+ 6C43CC041534F77800162364 /* x86 */,
);
path = src;
sourceTree = "<group>";
};
- DB13B32F1849E0CE0010F42D /* arm */ = {
+ 6C43CC041534F77800162364 /* x86 */ = {
isa = PBXGroup;
children = (
- DB13B3301849E0CE0010F42D /* ffi.c */,
- DB13B3311849E0CE0010F42D /* sysv.S */,
- DB13B3321849E0CE0010F42D /* trampoline.S */,
- );
- path = arm;
- sourceTree = "<group>";
- };
- DB13B33A1849E0CE0010F42D /* x86 */ = {
- isa = PBXGroup;
- children = (
- DB13B33B1849E0CE0010F42D /* darwin.S */,
- DB13B383184A50D60010F42D /* darwin64.S */,
- DB13B33C1849E0CE0010F42D /* ffi.c */,
- DB13B384184A50D60010F42D /* ffi64.c */,
+ 6C43CC051534F77800162364 /* darwin.S */,
+ 6C43CC061534F77800162364 /* darwin64.S */,
+ 6C43CC071534F77800162364 /* ffi.c */,
+ 6C43CC081534F77800162364 /* ffi64.c */,
);
path = x86;
sourceTree = "<group>";
};
- DB13B34A1849E0FF0010F42D /* osx */ = {
+ 6C43CC3D1534F7C400162364 /* src */ = {
isa = PBXGroup;
children = (
- DB13B34B1849E0FF0010F42D /* include */,
- DB13B3561849E0FF0010F42D /* src */,
+ 6C43CC281534F7BE00162364 /* closures.c */,
+ 6C43CC2B1534F7BE00162364 /* java_raw_api.c */,
+ 6C43CC2C1534F7BE00162364 /* prep_cif.c */,
+ 6C43CC2D1534F7BE00162364 /* raw_api.c */,
+ 6C43CC2E1534F7BE00162364 /* types.c */,
);
- path = osx;
+ name = src;
+ path = ios;
sourceTree = "<group>";
};
- DB13B34B1849E0FF0010F42D /* include */ = {
+ 6C43CC8C1535032600162364 /* include */ = {
isa = PBXGroup;
children = (
- DB13B34C1849E0FF0010F42D /* ffi.h */,
- DB13B34D1849E0FF0010F42D /* ffi_common.h */,
- DB13B34E1849E0FF0010F42D /* ffi_i386.h */,
- DB13B34F1849E0FF0010F42D /* ffi_x86_64.h */,
- DB13B3501849E0FF0010F42D /* fficonfig.h */,
- DB13B3511849E0FF0010F42D /* fficonfig_i386.h */,
- DB13B3521849E0FF0010F42D /* fficonfig_x86_64.h */,
- DB13B3531849E0FF0010F42D /* ffitarget.h */,
- DB13B3541849E0FF0010F42D /* ffitarget_i386.h */,
- DB13B3551849E0FF0010F42D /* ffitarget_x86_64.h */,
+ 6C43CC8D1535032600162364 /* ffi.h */,
+ 6C43CC8E1535032600162364 /* ffi_common.h */,
+ 6C43CC8F1535032600162364 /* ffi_i386.h */,
+ 6C43CC901535032600162364 /* ffi_x86_64.h */,
+ 6C43CC911535032600162364 /* fficonfig.h */,
+ 6C43CC921535032600162364 /* fficonfig_i386.h */,
+ 6C43CC931535032600162364 /* fficonfig_x86_64.h */,
+ 6C43CC941535032600162364 /* ffitarget.h */,
+ 6C43CC951535032600162364 /* ffitarget_i386.h */,
+ 6C43CC961535032600162364 /* ffitarget_x86_64.h */,
);
path = include;
sourceTree = "<group>";
};
- DB13B3561849E0FF0010F42D /* src */ = {
+ 6C43CCA11535039600162364 /* include */ = {
isa = PBXGroup;
children = (
- DB13B3571849E0FF0010F42D /* closures.c */,
- DB13B3591849E0FF0010F42D /* dlmalloc.c */,
- DB13B35B1849E0FF0010F42D /* prep_cif.c */,
- DB13B35C1849E0FF0010F42D /* raw_api.c */,
- DB13B35D1849E0FF0010F42D /* types.c */,
- DB13B35E1849E0FF0010F42D /* x86 */,
+ 6C43CCA21535039600162364 /* ffi.h */,
+ 6C43CCA31535039600162364 /* ffi_armv7.h */,
+ 6C43CCA41535039600162364 /* ffi_common.h */,
+ 6C43CCA51535039600162364 /* ffi_i386.h */,
+ 6C43CCA61535039600162364 /* fficonfig.h */,
+ 6C43CCA71535039600162364 /* fficonfig_armv7.h */,
+ 6C43CCA81535039600162364 /* fficonfig_i386.h */,
+ 6C43CCA91535039600162364 /* ffitarget.h */,
+ 6C43CCAA1535039600162364 /* ffitarget_arm.h */,
+ 6C43CCAB1535039600162364 /* ffitarget_armv7.h */,
+ 6C43CCAC1535039600162364 /* ffitarget_i386.h */,
);
- path = src;
+ path = include;
sourceTree = "<group>";
};
- DB13B35E1849E0FF0010F42D /* x86 */ = {
+ F6B0839514721EE50031D8A1 = {
isa = PBXGroup;
children = (
- DB13B35F1849E0FF0010F42D /* darwin.S */,
- DB13B3601849E0FF0010F42D /* darwin64.S */,
- DB13B3611849E0FF0010F42D /* ffi.c */,
- DB13B3621849E0FF0010F42D /* ffi64.c */,
+ 6C43CC3D1534F7C400162364 /* src */,
+ 6C43CBAF1534F76F00162364 /* iOS */,
+ 6C43CBF01534F77800162364 /* OS X */,
+ F6F980C6147386260008F121 /* Products */,
);
- path = x86;
sourceTree = "<group>";
};
- DB13B37E184A50CC0010F42D /* aarch64 */ = {
+ F6F980C6147386260008F121 /* Products */ = {
isa = PBXGroup;
children = (
- DB13B37F184A50CC0010F42D /* ffi.c */,
- DB13B380184A50CC0010F42D /* sysv.S */,
+ F6F980BA147386130008F121 /* libffi.a */,
+ 6C43CB3D1534E9D100162364 /* libffi.a */,
);
- path = aarch64;
- sourceTree = "<group>";
+ name = Products;
+ path = ../..;
+ sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
- DB13B18F1849DF510010F42D /* Headers */ = {
+ 6C43CB3B1534E9D100162364 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 6C43CC971535032600162364 /* ffi.h in Headers */,
+ 6C43CC981535032600162364 /* ffi_common.h in Headers */,
+ 6C43CC991535032600162364 /* ffi_i386.h in Headers */,
+ 6C43CC9A1535032600162364 /* ffi_x86_64.h in Headers */,
+ 6C43CC9E1535032600162364 /* ffitarget.h in Headers */,
+ 6C43CC9F1535032600162364 /* ffitarget_i386.h in Headers */,
+ 6C43CCA01535032600162364 /* ffitarget_x86_64.h in Headers */,
+ 6C43CC9B1535032600162364 /* fficonfig.h in Headers */,
+ 6C43CC9C1535032600162364 /* fficonfig_i386.h in Headers */,
+ 6C43CC9D1535032600162364 /* fficonfig_x86_64.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F6F980B8147386130008F121 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
- DB13B3681849E0FF0010F42D /* fficonfig_i386.h in Headers */,
- DB13B3651849E0FF0010F42D /* ffi_i386.h in Headers */,
- DB13B36B1849E0FF0010F42D /* ffitarget_i386.h in Headers */,
- DB13B3691849E0FF0010F42D /* fficonfig_x86_64.h in Headers */,
- DB13B3661849E0FF0010F42D /* ffi_x86_64.h in Headers */,
- DB13B3631849E0FF0010F42D /* ffi.h in Headers */,
- DB13B36A1849E0FF0010F42D /* ffitarget.h in Headers */,
- DB13B3641849E0FF0010F42D /* ffi_common.h in Headers */,
- DB13B36C1849E0FF0010F42D /* ffitarget_x86_64.h in Headers */,
- DB13B3671849E0FF0010F42D /* fficonfig.h in Headers */,
+ 6C43CCAD1535039600162364 /* ffi.h in Headers */,
+ 6C43CCAE1535039600162364 /* ffi_armv7.h in Headers */,
+ 6C43CCAF1535039600162364 /* ffi_common.h in Headers */,
+ 6C43CCB01535039600162364 /* ffi_i386.h in Headers */,
+ 6C43CCB41535039600162364 /* ffitarget.h in Headers */,
+ 6C43CCB51535039600162364 /* ffitarget_arm.h in Headers */,
+ 6C43CCB61535039600162364 /* ffitarget_armv7.h in Headers */,
+ 6C43CCB71535039600162364 /* ffitarget_i386.h in Headers */,
+ 6C43CCB11535039600162364 /* fficonfig.h in Headers */,
+ 6C43CCB21535039600162364 /* fficonfig_armv7.h in Headers */,
+ 6C43CCB31535039600162364 /* fficonfig_i386.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- DB13B1651849DF1E0010F42D /* libffi-iOS */ = {
+ 6C43CB3C1534E9D100162364 /* libffi OS X */ = {
isa = PBXNativeTarget;
- buildConfigurationList = DB13B18B1849DF1E0010F42D /* Build configuration list for PBXNativeTarget "libffi-iOS" */;
+ buildConfigurationList = 6C43CB4A1534E9D100162364 /* Build configuration list for PBXNativeTarget "libffi OS X" */;
buildPhases = (
- DB13B3051849E01C0010F42D /* ShellScript */,
- DB13B1621849DF1E0010F42D /* Sources */,
- DB13B1631849DF1E0010F42D /* Frameworks */,
- DB13B1641849DF1E0010F42D /* CopyFiles */,
+ 6C43CC401534FF3B00162364 /* Generate Source and Headers */,
+ 6C43CB391534E9D100162364 /* Sources */,
+ 6C43CB3A1534E9D100162364 /* Frameworks */,
+ 6C43CB3B1534E9D100162364 /* Headers */,
);
buildRules = (
);
dependencies = (
);
- name = "libffi-iOS";
- productName = ffi;
- productReference = DB13B1661849DF1E0010F42D /* libffi.a */;
+ name = "libffi OS X";
+ productName = "ffi OS X";
+ productReference = 6C43CB3D1534E9D100162364 /* libffi.a */;
productType = "com.apple.product-type.library.static";
};
- DB13B1901849DF510010F42D /* libffi-Mac */ = {
+ F6F980B9147386130008F121 /* libffi iOS */ = {
isa = PBXNativeTarget;
- buildConfigurationList = DB13B1B01849DF520010F42D /* Build configuration list for PBXNativeTarget "libffi-Mac" */;
+ buildConfigurationList = F6F980C4147386130008F121 /* Build configuration list for PBXNativeTarget "libffi iOS" */;
buildPhases = (
- DB13B3061849E0490010F42D /* ShellScript */,
- DB13B18D1849DF510010F42D /* Sources */,
- DB13B18E1849DF510010F42D /* Frameworks */,
- DB13B18F1849DF510010F42D /* Headers */,
+ 6C43CC3E1534F8E200162364 /* Generate Trampoline */,
+ 6C43CC3F1534FF1B00162364 /* Generate Source and Headers */,
+ F6F980B6147386130008F121 /* Sources */,
+ F6F980B7147386130008F121 /* Frameworks */,
+ F6F980B8147386130008F121 /* Headers */,
);
buildRules = (
);
dependencies = (
);
- name = "libffi-Mac";
+ name = "libffi iOS";
productName = ffi;
- productReference = DB13B1911849DF510010F42D /* ffi.dylib */;
- productType = "com.apple.product-type.library.dynamic";
+ productReference = F6F980BA147386130008F121 /* libffi.a */;
+ productType = "com.apple.product-type.library.static";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
- DB13B15C1849DEB70010F42D /* Project object */ = {
+ F6B0839714721EE50031D8A1 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0510;
+ LastUpgradeCheck = 0430;
};
- buildConfigurationList = DB13B15F1849DEB70010F42D /* Build configuration list for PBXProject "libffi" */;
+ buildConfigurationList = F6B0839A14721EE50031D8A1 /* Build configuration list for PBXProject "libffi" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
- mainGroup = DB13B15B1849DEB70010F42D;
- productRefGroup = DB13B1671849DF1E0010F42D /* Products */;
+ mainGroup = F6B0839514721EE50031D8A1;
+ productRefGroup = F6B0839514721EE50031D8A1;
projectDirPath = "";
projectRoot = "";
targets = (
- DB13B1651849DF1E0010F42D /* libffi-iOS */,
- DB13B1901849DF510010F42D /* libffi-Mac */,
+ F6F980B9147386130008F121 /* libffi iOS */,
+ 6C43CB3C1534E9D100162364 /* libffi OS X */,
);
};
/* End PBXProject section */
/* Begin PBXShellScriptBuildPhase section */
- DB13B3051849E01C0010F42D /* ShellScript */ = {
+ 6C43CC3E1534F8E200162364 /* Generate Trampoline */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Generate Trampoline";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /usr/bin/python;
+ shellScript = "import subprocess\nimport re\nimport os\nimport errno\nimport sys\n\ndef main():\n with open('src/arm/trampoline.S', 'w') as tramp_out:\n p = subprocess.Popen(['bash', 'src/arm/gentramp.sh'], stdout=tramp_out)\n p.wait()\n\nif __name__ == '__main__':\n main()";
+ };
+ 6C43CC3F1534FF1B00162364 /* Generate Source and Headers */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
+ name = "Generate Source and Headers";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/usr/bin/python generate-ios-source-and-headers.py";
};
- DB13B3061849E0490010F42D /* ShellScript */ = {
+ 6C43CC401534FF3B00162364 /* Generate Source and Headers */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
+ name = "Generate Source and Headers";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -432,75 +392,88 @@
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
- DB13B1621849DF1E0010F42D /* Sources */ = {
+ 6C43CB391534E9D100162364 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- DB13B3461849E0CE0010F42D /* types.c in Sources */,
- DB13B33E1849E0CE0010F42D /* sysv.S in Sources */,
- DB13B3451849E0CE0010F42D /* raw_api.c in Sources */,
- DB13B382184A50CC0010F42D /* sysv.S in Sources */,
- DB13B3401849E0CE0010F42D /* closures.c in Sources */,
- DB13B33F1849E0CE0010F42D /* trampoline.S in Sources */,
- DB13B386184A50D60010F42D /* ffi64.c in Sources */,
- DB13B385184A50D60010F42D /* darwin64.S in Sources */,
- DB13B33D1849E0CE0010F42D /* ffi.c in Sources */,
- DB13B3481849E0CE0010F42D /* ffi.c in Sources */,
- DB13B381184A50CC0010F42D /* ffi.c in Sources */,
- DB13B3471849E0CE0010F42D /* darwin.S in Sources */,
- DB13B3441849E0CE0010F42D /* prep_cif.c in Sources */,
+ 6C43CC1F1534F77800162364 /* darwin.S in Sources */,
+ 6C43CC201534F77800162364 /* darwin64.S in Sources */,
+ 6C43CC211534F77800162364 /* ffi.c in Sources */,
+ 6C43CC221534F77800162364 /* ffi64.c in Sources */,
+ 6C43CC301534F7BE00162364 /* closures.c in Sources */,
+ 6C43CC361534F7BE00162364 /* java_raw_api.c in Sources */,
+ 6C43CC381534F7BE00162364 /* prep_cif.c in Sources */,
+ 6C43CC3A1534F7BE00162364 /* raw_api.c in Sources */,
+ 6C43CC3C1534F7BE00162364 /* types.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- DB13B18D1849DF510010F42D /* Sources */ = {
+ F6F980B6147386130008F121 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- DB13B3761849E0FF0010F42D /* ffi.c in Sources */,
- DB13B3731849E0FF0010F42D /* types.c in Sources */,
- DB13B3721849E0FF0010F42D /* raw_api.c in Sources */,
- DB13B3711849E0FF0010F42D /* prep_cif.c in Sources */,
- DB13B36D1849E0FF0010F42D /* closures.c in Sources */,
- DB13B3741849E0FF0010F42D /* darwin.S in Sources */,
- DB13B3771849E0FF0010F42D /* ffi64.c in Sources */,
- DB13B3751849E0FF0010F42D /* darwin64.S in Sources */,
+ 6C43CBDC1534F76F00162364 /* ffi.c in Sources */,
+ 6C43CBDD1534F76F00162364 /* sysv.S in Sources */,
+ 6C43CBDE1534F76F00162364 /* trampoline.S in Sources */,
+ 6C43CBE61534F76F00162364 /* darwin.S in Sources */,
+ 6C43CBE81534F76F00162364 /* ffi.c in Sources */,
+ 6C43CC2F1534F7BE00162364 /* closures.c in Sources */,
+ 6C43CC351534F7BE00162364 /* java_raw_api.c in Sources */,
+ 6C43CC371534F7BE00162364 /* prep_cif.c in Sources */,
+ 6C43CC391534F7BE00162364 /* raw_api.c in Sources */,
+ 6C43CC3B1534F7BE00162364 /* types.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
- DB13B1601849DEB70010F42D /* Debug */ = {
+ 6C43CB4B1534E9D100162364 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ DSTROOT = /tmp/ffi.dst;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SYSTEM_APPS_DIR)/Xcode.app/Contents/Developer/Library/Frameworks\"",
+ );
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.6;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_NAME = ffi;
+ SDKROOT = macosx;
};
name = Debug;
};
- DB13B1611849DEB70010F42D /* Release */ = {
+ 6C43CB4C1534E9D100162364 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DSTROOT = /tmp/ffi.dst;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SYSTEM_APPS_DIR)/Xcode.app/Contents/Developer/Library/Frameworks\"",
+ );
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.6;
+ PRODUCT_NAME = ffi;
+ SDKROOT = macosx;
};
name = Release;
};
- DB13B1871849DF1E0010F42D /* Debug */ = {
+ F6B083AB14721EE50031D8A1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
COPY_PHASE_STRIP = NO;
- DSTROOT = /tmp/ffi.dst;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
@@ -509,182 +482,98 @@
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VALUE = NO;
GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- ios/include,
- );
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- ONLY_ACTIVE_ARCH = YES;
- OTHER_LDFLAGS = "-ObjC";
- PRODUCT_NAME = ffi;
+ HEADER_SEARCH_PATHS = ios/include;
SDKROOT = iphoneos;
- SKIP_INSTALL = YES;
};
name = Debug;
};
- DB13B1881849DF1E0010F42D /* Release */ = {
+ F6B083AC14721EE50031D8A1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
COPY_PHASE_STRIP = YES;
- DSTROOT = /tmp/ffi.dst;
- ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = "";
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VALUE = NO;
GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- ios/include,
- );
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- OTHER_LDFLAGS = "-ObjC";
- PRODUCT_NAME = ffi;
+ HEADER_SEARCH_PATHS = ios/include;
SDKROOT = iphoneos;
- SKIP_INSTALL = YES;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
- DB13B1B11849DF520010F42D /* Debug */ = {
+ F6F980C2147386130008F121 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- COPY_PHASE_STRIP = NO;
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
+ ARCHS = (
+ armv6,
+ armv7,
);
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- osx/include,
- );
- MACOSX_DEPLOYMENT_TARGET = 10.7;
- ONLY_ACTIVE_ARCH = YES;
- OTHER_LDFLAGS = "-Wl,-no_compact_unwind";
+ DSTROOT = /tmp/ffi.dst;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_THUMB_SUPPORT = NO;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = ffi;
- SDKROOT = macosx;
+ SKIP_INSTALL = YES;
};
name = Debug;
};
- DB13B1B21849DF520010F42D /* Release */ = {
+ F6F980C3147386130008F121 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- ENABLE_NS_ASSERTIONS = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- osx/include,
+ ARCHS = (
+ armv6,
+ armv7,
);
- MACOSX_DEPLOYMENT_TARGET = 10.7;
- OTHER_LDFLAGS = "-Wl,-no_compact_unwind";
+ DSTROOT = /tmp/ffi.dst;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_THUMB_SUPPORT = NO;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = ffi;
- SDKROOT = macosx;
+ SKIP_INSTALL = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- DB13B15F1849DEB70010F42D /* Build configuration list for PBXProject "libffi" */ = {
+ 6C43CB4A1534E9D100162364 /* Build configuration list for PBXNativeTarget "libffi OS X" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- DB13B1601849DEB70010F42D /* Debug */,
- DB13B1611849DEB70010F42D /* Release */,
+ 6C43CB4B1534E9D100162364 /* Debug */,
+ 6C43CB4C1534E9D100162364 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- DB13B18B1849DF1E0010F42D /* Build configuration list for PBXNativeTarget "libffi-iOS" */ = {
+ F6B0839A14721EE50031D8A1 /* Build configuration list for PBXProject "libffi" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- DB13B1871849DF1E0010F42D /* Debug */,
- DB13B1881849DF1E0010F42D /* Release */,
+ F6B083AB14721EE50031D8A1 /* Debug */,
+ F6B083AC14721EE50031D8A1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- DB13B1B01849DF520010F42D /* Build configuration list for PBXNativeTarget "libffi-Mac" */ = {
+ F6F980C4147386130008F121 /* Build configuration list for PBXNativeTarget "libffi iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- DB13B1B11849DF520010F42D /* Debug */,
- DB13B1B21849DF520010F42D /* Release */,
+ F6F980C2147386130008F121 /* Debug */,
+ F6F980C3147386130008F121 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
- rootObject = DB13B15C1849DEB70010F42D /* Project object */;
+ rootObject = F6B0839714721EE50031D8A1 /* Project object */;
}
diff --git a/src/aarch64/ffi.c b/src/aarch64/ffi.c
index ec773d6..f1a063d 100644
--- a/src/aarch64/ffi.c
+++ b/src/aarch64/ffi.c
@@ -49,29 +49,14 @@ struct call_context
} v [AARCH64_N_VREG];
};
-#if defined(__clang__) && defined(__APPLE__)
-void sys_icache_invalidate(void *start, size_t len);
-#endif
-
-static inline void ffi_clear_cache(void *start, void *end)
-{
-#if defined(__clang__) && defined(__APPLE__)
- sys_icache_invalidate(start, (char *)end-(char *)start);
-#elif defined(__GNUC__)
- __builtin___clear_cache(start, end);
-#else
-#error "Missing builtin to flush instruction cache"
-#endif
-}
-
static void *
-get_x_addr (struct call_context *context, size_t n)
+get_x_addr (struct call_context *context, unsigned n)
{
return &context->x[n];
}
static void *
-get_s_addr (struct call_context *context, size_t n)
+get_s_addr (struct call_context *context, unsigned n)
{
#if defined __AARCH64EB__
return &context->v[n].d[1].s[1];
@@ -81,7 +66,7 @@ get_s_addr (struct call_context *context, size_t n)
}
static void *
-get_d_addr (struct call_context *context, size_t n)
+get_d_addr (struct call_context *context, unsigned n)
{
#if defined __AARCH64EB__
return &context->v[n].d[1];
@@ -91,7 +76,7 @@ get_d_addr (struct call_context *context, size_t n)
}
static void *
-get_v_addr (struct call_context *context, size_t n)
+get_v_addr (struct call_context *context, unsigned n)
{
return &context->v[n];
}
@@ -109,10 +94,8 @@ get_basic_type_addr (unsigned short type, struct call_context *context,
return get_s_addr (context, n);
case FFI_TYPE_DOUBLE:
return get_d_addr (context, n);
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
return get_v_addr (context, n);
-#endif
case FFI_TYPE_UINT8:
case FFI_TYPE_SINT8:
case FFI_TYPE_UINT16:
@@ -140,10 +123,8 @@ get_basic_type_alignment (unsigned short type)
case FFI_TYPE_FLOAT:
case FFI_TYPE_DOUBLE:
return sizeof (UINT64);
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
return sizeof (long double);
-#endif
case FFI_TYPE_UINT8:
case FFI_TYPE_SINT8:
case FFI_TYPE_UINT16:
@@ -173,10 +154,8 @@ get_basic_type_size (unsigned short type)
return sizeof (UINT32);
case FFI_TYPE_DOUBLE:
return sizeof (UINT64);
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
return sizeof (long double);
-#endif
case FFI_TYPE_UINT8:
return sizeof (UINT8);
case FFI_TYPE_SINT8:
@@ -207,7 +186,7 @@ ffi_call_SYSV (unsigned (*)(struct call_context *context, unsigned char *,
extended_cif *),
struct call_context *context,
extended_cif *,
- size_t,
+ unsigned,
void (*fn)(void));
extern void
@@ -326,9 +305,7 @@ is_register_candidate (ffi_type *ty)
case FFI_TYPE_VOID:
case FFI_TYPE_FLOAT:
case FFI_TYPE_DOUBLE:
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
-#endif
case FFI_TYPE_UINT8:
case FFI_TYPE_UINT16:
case FFI_TYPE_UINT32:
@@ -388,14 +365,14 @@ is_v_register_candidate (ffi_type *ty)
struct arg_state
{
- size_t ngrn; /* Next general-purpose register number. */
- size_t nsrn; /* Next vector register number. */
- size_t nsaa; /* Next stack offset. */
+ unsigned ngrn; /* Next general-purpose register number. */
+ unsigned nsrn; /* Next vector register number. */
+ unsigned nsaa; /* Next stack offset. */
};
/* Initialize a procedure call argument marshalling state. */
static void
-arg_init (struct arg_state *state, size_t call_frame_size)
+arg_init (struct arg_state *state, unsigned call_frame_size)
{
state->ngrn = 0;
state->nsrn = 0;
@@ -405,7 +382,7 @@ arg_init (struct arg_state *state, size_t call_frame_size)
/* Return the number of available consecutive core argument
registers. */
-static size_t
+static unsigned
available_x (struct arg_state *state)
{
return N_X_ARG_REG - state->ngrn;
@@ -414,7 +391,7 @@ available_x (struct arg_state *state)
/* Return the number of available consecutive vector argument
registers. */
-static size_t
+static unsigned
available_v (struct arg_state *state)
{
return N_V_ARG_REG - state->nsrn;
@@ -450,8 +427,8 @@ allocate_to_v (struct call_context *context, struct arg_state *state)
/* Allocate an aligned slot on the stack and return a pointer to it. */
static void *
-allocate_to_stack (struct arg_state *state, void *stack, size_t alignment,
- size_t size)
+allocate_to_stack (struct arg_state *state, void *stack, unsigned alignment,
+ unsigned size)
{
void *allocation;
@@ -480,11 +457,9 @@ copy_basic_type (void *dest, void *source, unsigned short type)
case FFI_TYPE_DOUBLE:
*(double *) dest = *(double *) source;
break;
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
*(long double *) dest = *(long double *) source;
break;
-#endif
case FFI_TYPE_UINT8:
*(ffi_arg *) dest = *(UINT8 *) source;
break;
@@ -539,8 +514,8 @@ copy_hfa_to_reg_or_stack (void *memory,
{
int i;
unsigned short type = get_homogeneous_type (ty);
- unsigned count = element_count (ty);
- for (i = 0; i < count; i++)
+ unsigned elems = element_count (ty);
+ for (i = 0; i < elems; i++)
{
void *reg = allocate_to_v (context, state);
copy_basic_type (reg, memory, type);
@@ -573,13 +548,11 @@ allocate_to_register_or_stack (struct call_context *context,
return allocate_to_d (context, state);
state->nsrn = N_V_ARG_REG;
break;
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
if (state->nsrn < N_V_ARG_REG)
return allocate_to_v (context, state);
state->nsrn = N_V_ARG_REG;
break;
-#endif
case FFI_TYPE_UINT8:
case FFI_TYPE_SINT8:
case FFI_TYPE_UINT16:
@@ -642,9 +615,7 @@ aarch64_prep_args (struct call_context *context, unsigned char *stack,
appropriate register, or if none are available, to the stack. */
case FFI_TYPE_FLOAT:
case FFI_TYPE_DOUBLE:
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
-#endif
case FFI_TYPE_UINT8:
case FFI_TYPE_SINT8:
case FFI_TYPE_UINT16:
@@ -757,7 +728,7 @@ ffi_call (ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
case FFI_SYSV:
{
struct call_context context;
- size_t stack_bytes;
+ unsigned stack_bytes;
/* Figure out the total amount of stack space we need, the
above call frame space needs to be 16 bytes aligned to
@@ -774,9 +745,7 @@ ffi_call (ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
case FFI_TYPE_VOID:
case FFI_TYPE_FLOAT:
case FFI_TYPE_DOUBLE:
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
-#endif
case FFI_TYPE_UINT8:
case FFI_TYPE_SINT8:
case FFI_TYPE_UINT16:
@@ -809,7 +778,7 @@ ffi_call (ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
}
else if ((cif->rtype->size + 7) / 8 < N_X_ARG_REG)
{
- size_t size = ALIGN (cif->rtype->size, sizeof (UINT64));
+ unsigned size = ALIGN (cif->rtype->size, sizeof (UINT64));
memcpy (rvalue, get_x_addr (&context, 0), size);
}
else
@@ -855,7 +824,7 @@ static unsigned char trampoline [] =
memcpy (__tramp + 12, &__fun, sizeof (__fun)); \
memcpy (__tramp + 20, &__ctx, sizeof (__ctx)); \
memcpy (__tramp + 28, &__flags, sizeof (__flags)); \
- ffi_clear_cache(__tramp, __tramp + FFI_TRAMPOLINE_SIZE); \
+ __clear_cache(__tramp, __tramp + FFI_TRAMPOLINE_SIZE); \
})
ffi_status
@@ -896,9 +865,6 @@ ffi_prep_closure_loc (ffi_closure* closure,
void
ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context,
- void *stack);
-void
-ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context,
void *stack)
{
ffi_cif *cif = closure->cif;
@@ -931,12 +897,11 @@ ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context,
case FFI_TYPE_SINT64:
case FFI_TYPE_FLOAT:
case FFI_TYPE_DOUBLE:
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
avalue[i] = allocate_to_register_or_stack (context, stack,
&state, ty->type);
break;
-#endif
+
case FFI_TYPE_STRUCT:
if (is_hfa (ty))
{
@@ -993,13 +958,11 @@ ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context,
break;
}
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
memcpy (&avalue[i],
allocate_to_v (context, &state),
sizeof (*avalue));
break;
-#endif
default:
FFI_ASSERT (0);
@@ -1070,9 +1033,7 @@ ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context,
case FFI_TYPE_SINT64:
case FFI_TYPE_FLOAT:
case FFI_TYPE_DOUBLE:
-#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
case FFI_TYPE_LONGDOUBLE:
-#endif
{
void *addr = get_basic_type_addr (cif->rtype->type, context, 0);
copy_basic_type (addr, rvalue, cif->rtype->type);
@@ -1081,10 +1042,10 @@ ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context,
case FFI_TYPE_STRUCT:
if (is_hfa (cif->rtype))
{
- int j;
+ int i;
unsigned short type = get_homogeneous_type (cif->rtype);
unsigned elems = element_count (cif->rtype);
- for (j = 0; j < elems; i++)
+ for (i = 0; i < elems; i++)
{
void *reg = get_basic_type_addr (type, context, i);
copy_basic_type (reg, rvalue, type);
@@ -1093,7 +1054,7 @@ ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context,
}
else if ((cif->rtype->size + 7) / 8 < N_X_ARG_REG)
{
- size_t size = ALIGN (cif->rtype->size, sizeof (UINT64)) ;
+ unsigned size = ALIGN (cif->rtype->size, sizeof (UINT64)) ;
memcpy (get_x_addr (context, 0), rvalue, size);
}
else
@@ -1112,3 +1073,4 @@ ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context,
(closure->fun) (cif, rvalue, avalue, closure->user_data);
}
}
+
diff --git a/src/aarch64/sysv.S b/src/aarch64/sysv.S
index 901ee6a..1022454 100644
--- a/src/aarch64/sysv.S
+++ b/src/aarch64/sysv.S
@@ -23,25 +23,15 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#include <fficonfig.h>
#include <ffi.h>
-#ifdef HAVE_MACHINE_ASM_H
-#include <machine/asm.h>
-#else
-#ifdef __USER_LABEL_PREFIX__
-#define CONCAT1(a, b) CONCAT2(a, b)
-#define CONCAT2(a, b) a ## b
-
-/* Use the right prefix for global labels. */
-#define CNAME(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
-#else
-#define CNAME(x) x
-#endif
-#endif
-
#define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off
#define cfi_rel_offset(reg, off) .cfi_rel_offset reg, off
#define cfi_restore(reg) .cfi_restore reg
#define cfi_def_cfa_register(reg) .cfi_def_cfa_register reg
+ .text
+ .globl ffi_call_SYSV
+ .type ffi_call_SYSV, #function
+
/* ffi_call_SYSV()
Create a stack frame, setup an argument context, call the callee
@@ -63,7 +53,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
extended_cif *),
struct call_context *context,
extended_cif *,
- size_t required_stack_size,
+ unsigned required_stack_size,
void (*fn)(void));
Therefore on entry we have:
@@ -91,13 +81,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#define ffi_call_SYSV_FS (8 * 4)
- .text
- .globl CNAME(ffi_call_SYSV)
-#ifdef __ELF__
- .type CNAME(ffi_call_SYSV), #function
-#endif
.cfi_startproc
-CNAME(ffi_call_SYSV):
+ffi_call_SYSV:
stp x29, x30, [sp, #-16]!
cfi_adjust_cfa_offset (16)
cfi_rel_offset (x29, 0)
@@ -107,11 +92,11 @@ CNAME(ffi_call_SYSV):
cfi_def_cfa_register (x29)
sub sp, sp, #ffi_call_SYSV_FS
- stp x21, x22, [sp, #0]
+ stp x21, x22, [sp, 0]
cfi_rel_offset (x21, 0 - ffi_call_SYSV_FS)
cfi_rel_offset (x22, 8 - ffi_call_SYSV_FS)
- stp x23, x24, [sp, #16]
+ stp x23, x24, [sp, 16]
cfi_rel_offset (x23, 16 - ffi_call_SYSV_FS)
cfi_rel_offset (x24, 24 - ffi_call_SYSV_FS)
@@ -195,9 +180,7 @@ CNAME(ffi_call_SYSV):
ret
.cfi_endproc
-#ifdef __ELF__
- .size CNAME(ffi_call_SYSV), .-CNAME(ffi_call_SYSV)
-#endif
+ .size ffi_call_SYSV, .-ffi_call_SYSV
#define ffi_closure_SYSV_FS (8 * 2 + AARCH64_CALL_CONTEXT_SIZE)
@@ -238,10 +221,10 @@ CNAME(ffi_call_SYSV):
Voila! */
- .text
- .globl CNAME(ffi_closure_SYSV)
+ .text
+ .globl ffi_closure_SYSV
.cfi_startproc
-CNAME(ffi_closure_SYSV):
+ffi_closure_SYSV:
stp x29, x30, [sp, #-16]!
cfi_adjust_cfa_offset (16)
cfi_rel_offset (x29, 0)
@@ -287,7 +270,7 @@ CNAME(ffi_closure_SYSV):
trampoline was called. */
add x2, x29, #16
- bl CNAME(ffi_closure_SYSV_inner)
+ bl ffi_closure_SYSV_inner
/* Figure out if we should touch the vector registers. */
ldr x0, [x22, #8]
@@ -321,6 +304,4 @@ CNAME(ffi_closure_SYSV):
ret
.cfi_endproc
-#ifdef __ELF__
- .size CNAME(ffi_closure_SYSV), .-CNAME(ffi_closure_SYSV)
-#endif
+ .size ffi_closure_SYSV, .-ffi_closure_SYSV
diff --git a/src/arm/ffi.c b/src/arm/ffi.c
index e2a8380..e452a6e 100644
--- a/src/arm/ffi.c
+++ b/src/arm/ffi.c
@@ -77,19 +77,19 @@ static size_t ffi_put_arg(ffi_type **arg_type, void **arg, char *stack)
case FFI_TYPE_SINT8:
*(signed int *) argp = (signed int)*(SINT8 *)(* p_argv);
break;
-
+
case FFI_TYPE_UINT8:
*(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv);
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;
@@ -117,12 +117,11 @@ static size_t ffi_put_arg(ffi_type **arg_type, void **arg, char *stack)
}
/* ffi_prep_args is called by the assembly routine once stack space
has been allocated for the function's arguments
-
+
The vfp_space parameter is the load area for VFP regs, the return
value is cif->vfp_used (word bitset of VFP regs used for passing
arguments). These are only used for the VFP hard-float ABI.
*/
-int ffi_prep_args_SYSV(char *stack, extended_cif *ecif, float *vfp_space);
int ffi_prep_args_SYSV(char *stack, extended_cif *ecif, float *vfp_space)
{
register unsigned int i;
@@ -130,7 +129,7 @@ int ffi_prep_args_SYSV(char *stack, extended_cif *ecif, float *vfp_space)
register char *argp;
register ffi_type **p_arg;
argp = stack;
-
+
if ( ecif->cif->flags == FFI_TYPE_STRUCT ) {
*(void **) argp = ecif->rvalue;
@@ -150,7 +149,6 @@ int ffi_prep_args_SYSV(char *stack, extended_cif *ecif, float *vfp_space)
return 0;
}
-int ffi_prep_args_VFP(char *stack, extended_cif *ecif, float *vfp_space);
int ffi_prep_args_VFP(char *stack, extended_cif *ecif, float *vfp_space)
{
// make sure we are using FFI_VFP
@@ -162,13 +160,13 @@ int ffi_prep_args_VFP(char *stack, extended_cif *ecif, float *vfp_space)
register ffi_type **p_arg;
char stack_used = 0;
char done_with_regs = 0;
- int is_vfp_type;
+ char is_vfp_type;
/* the first 4 words on the stack are used for values passed in core
* registers. */
regp = stack;
eo_regp = argp = regp + 16;
-
+
/* if the function returns an FFI_TYPE_STRUCT in memory, that address is
* passed in r0 to the function */
@@ -196,7 +194,7 @@ int ffi_prep_args_VFP(char *stack, extended_cif *ecif, float *vfp_space)
else if (!done_with_regs && !is_vfp_type)
{
char *tregp = ffi_align(p_arg, regp);
- size_t size = (*p_arg)->size;
+ size_t size = (*p_arg)->size;
size = (size < 4)? 4 : size; // pad
/* Check if there is space left in the aligned register area to place
* the argument */
@@ -208,10 +206,10 @@ int ffi_prep_args_VFP(char *stack, extended_cif *ecif, float *vfp_space)
FFI_ASSERT(regp <= argp);
continue;
}
- /* In case there are no arguments in the stack area yet,
+ /* In case there are no arguments in the stack area yet,
the argument is passed in the remaining core registers and on the
stack. */
- else if (!stack_used)
+ else if (!stack_used)
{
stack_used = 1;
done_with_regs = 1;
@@ -233,7 +231,7 @@ int ffi_prep_args_VFP(char *stack, extended_cif *ecif, float *vfp_space)
ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
{
int type_code;
- /* Round the stack up to a multiple of 8 bytes. This isn't needed
+ /* Round the stack up to a multiple of 8 bytes. This isn't needed
everywhere, but it is on some platforms, and it doesn't harm anything
when it isn't needed. */
cif->bytes = (cif->bytes + 7) & ~7;
@@ -304,7 +302,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
{
extended_cif ecif;
- int small_struct = (cif->flags == FFI_TYPE_INT
+ int small_struct = (cif->flags == FFI_TYPE_INT
&& cif->rtype->type == FFI_TYPE_STRUCT);
int vfp_struct = (cif->flags == FFI_TYPE_STRUCT_VFP_FLOAT
|| cif->flags == FFI_TYPE_STRUCT_VFP_DOUBLE);
@@ -317,7 +315,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
/* If the return value is a struct and we don't have a return */
/* value address then we need to make one */
- if ((rvalue == NULL) &&
+ if ((rvalue == NULL) &&
(cif->flags == FFI_TYPE_STRUCT))
{
ecif.rvalue = alloca(cif->rtype->size);
@@ -332,7 +330,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
else
ecif.rvalue = rvalue;
- switch (cif->abi)
+ switch (cif->abi)
{
case FFI_SYSV:
ffi_call_SYSV (fn, &ecif, cif->bytes, cif->flags, ecif.rvalue);
@@ -348,9 +346,9 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
FFI_ASSERT(0);
break;
}
- if (small_struct && rvalue != NULL)
+ if (small_struct)
memcpy (rvalue, &temp, cif->rtype->size);
- else if (vfp_struct && rvalue != NULL)
+ else if (vfp_struct)
memcpy (rvalue, ecif.rvalue, cif->rtype->size);
}
@@ -368,7 +366,6 @@ void ffi_closure_VFP (ffi_closure *);
/* This function is jumped to by the trampoline */
-unsigned int ffi_closure_inner (ffi_closure *closure, void **respp, void *args, void *vfp_args);
unsigned int
ffi_closure_inner (ffi_closure *closure,
void **respp, void *args, void *vfp_args)
@@ -378,10 +375,10 @@ ffi_closure_inner (ffi_closure *closure,
void **arg_area;
cif = closure->cif;
- arg_area = (void**) alloca (cif->nargs * sizeof (void*));
+ arg_area = (void**) alloca (cif->nargs * sizeof (void*));
/* this call will initialize ARG_AREA, such that each
- * element in that array points to the corresponding
+ * element in that array points to the corresponding
* value on the stack; and if the function returns
* a structure, it will re-set RESP to point to the
* structure return address. */
@@ -396,7 +393,7 @@ ffi_closure_inner (ffi_closure *closure,
}
/*@-exportheader@*/
-static void
+static void
ffi_prep_incoming_args_SYSV(char *stack, void **rvalue,
void **avalue, ffi_cif *cif,
/* Used only under VFP hard-float ABI. */
@@ -432,12 +429,12 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue,
p_argv++;
argp += z;
}
-
+
return;
}
/*@-exportheader@*/
-static void
+static void
ffi_prep_incoming_args_VFP(char *stack, void **rvalue,
void **avalue, ffi_cif *cif,
/* Used only under VFP hard-float ABI. */
@@ -450,7 +447,7 @@ ffi_prep_incoming_args_VFP(char *stack, void **rvalue,
register ffi_type **p_arg;
char done_with_regs = 0;
char stack_used = 0;
- int is_vfp_type;
+ char is_vfp_type;
FFI_ASSERT(cif->abi == FFI_VFP);
regp = stack;
@@ -466,7 +463,7 @@ ffi_prep_incoming_args_VFP(char *stack, void **rvalue,
for (i = cif->nargs, p_arg = cif->arg_types; (i != 0); i--, p_arg++)
{
size_t z;
- is_vfp_type = vfp_type_p (*p_arg);
+ is_vfp_type = vfp_type_p (*p_arg);
if(vi < cif->vfp_nargs && is_vfp_type)
{
@@ -477,12 +474,12 @@ ffi_prep_incoming_args_VFP(char *stack, void **rvalue,
{
char* tregp = ffi_align(p_arg, regp);
- z = (*p_arg)->size;
+ z = (*p_arg)->size;
z = (z < 4)? 4 : z; // pad
-
+
/* if the arguments either fits into the registers or uses registers
* and stack, while we haven't read other things from the stack */
- if(tregp + z <= eo_regp || !stack_used)
+ if(tregp + z <= eo_regp || !stack_used)
{
/* because we're little endian, this is what it turns into. */
*p_argv = (void*) tregp;
@@ -521,7 +518,7 @@ ffi_prep_incoming_args_VFP(char *stack, void **rvalue,
p_argv++;
argp += z;
}
-
+
return;
}
@@ -884,7 +881,7 @@ static int place_vfp_arg (ffi_cif *cif, ffi_type *t)
}
/* Found regs to allocate. */
cif->vfp_used |= new_used;
- cif->vfp_args[cif->vfp_nargs++] = (typeof(*(cif->vfp_args)))reg;
+ cif->vfp_args[cif->vfp_nargs++] = reg;
/* Update vfp_reg_free. */
if (cif->vfp_used & (1 << cif->vfp_reg_free))
@@ -892,7 +889,7 @@ static int place_vfp_arg (ffi_cif *cif, ffi_type *t)
reg += nregs;
while (cif->vfp_used & (1 << reg))
reg += 1;
- cif->vfp_reg_free = (typeof(cif->vfp_reg_free))reg;
+ cif->vfp_reg_free = reg;
}
return 0;
next_reg: ;
diff --git a/src/arm/sysv.S b/src/arm/sysv.S
index ef33fc9..454dfc9 100644
--- a/src/arm/sysv.S
+++ b/src/arm/sysv.S
@@ -1,8 +1,8 @@
/* -----------------------------------------------------------------------
sysv.S - Copyright (c) 1998, 2008, 2011 Red Hat, Inc.
Copyright (c) 2011 Plausible Labs Cooperative, Inc.
-
- ARM Foreign Function Interface
+
+ ARM Foreign Function Interface
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@@ -25,7 +25,7 @@
DEALINGS IN THE SOFTWARE.
----------------------------------------------------------------------- */
-#define LIBFFI_ASM
+#define LIBFFI_ASM
#include <fficonfig.h>
#include <ffi.h>
#ifdef HAVE_MACHINE_ASM_H
@@ -59,7 +59,7 @@
#define __SOFTFP__
#endif
-/* We need a better way of testing for this, but for now, this is all
+/* We need a better way of testing for this, but for now, this is all
we can do. */
@ This selects the minimum architecture level required.
#define __ARM_ARCH__ 3
@@ -68,7 +68,7 @@
# undef __ARM_ARCH__
# define __ARM_ARCH__ 4
#endif
-
+
#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) \
|| defined(__ARM_ARCH_5E__) || defined(__ARM_ARCH_5TE__) \
|| defined(__ARM_ARCH_5TEJ__)
@@ -107,37 +107,60 @@
#define UNWIND
#else
#define UNWIND @
-#endif
-
-.syntax unified
+#endif
+
#if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
-#define ARM_FUNC_START(name) \
- .text; \
- .align 2; \
- .thumb; \
- .thumb_func; \
- ENTRY(name); \
- bx pc; \
- nop; \
- .arm; \
- UNWIND .fnstart; \
-_L__##name:
+.macro ARM_FUNC_START name
+ .text
+ .align 0
+ .thumb
+ .thumb_func
+#ifdef __APPLE__
+ ENTRY($0)
#else
-#define ARM_FUNC_START(name) \
- .text; \
- .align 2; \
- .arm; \
- ENTRY(name); \
+ ENTRY(\name)
+#endif
+ bx pc
+ nop
+ .arm
UNWIND .fnstart
+/* A hook to tell gdb that we've switched to ARM mode. Also used to call
+ directly from other local arm routines. */
+#ifdef __APPLE__
+_L__$0:
+#else
+_L__\name:
+#endif
+.endm
+#else
+.macro ARM_FUNC_START name
+ .text
+ .align 0
+ .arm
+#ifdef __APPLE__
+ ENTRY($0)
+#else
+ ENTRY(\name)
+#endif
+ UNWIND .fnstart
+.endm
#endif
-.macro RETLDM
+.macro RETLDM regs=, cond=, dirn=ia
#if defined (__INTERWORKING__)
- ldr lr, [sp], #4
- bx lr
+ .ifc "\regs",""
+ ldr\cond lr, [sp], #4
+ .else
+ ldm\cond\dirn sp!, {\regs, lr}
+ .endif
+ bx\cond lr
#else
- ldr pc, [sp], #4
+ .ifc "\regs",""
+ ldr\cond pc, [sp], #4
+ .else
+ ldm\cond\dirn sp!, {\regs, pc}
+ .endif
#endif
.endm
@@ -148,7 +171,7 @@ _L__##name:
@ sp+0: ecif.rvalue
@ This assumes we are using gas.
-ARM_FUNC_START(ffi_call_SYSV)
+ARM_FUNC_START ffi_call_SYSV
@ Save registers
stmfd sp!, {r0-r3, fp, lr}
UNWIND .save {r0-r3, fp, lr}
@@ -178,14 +201,14 @@ ARM_FUNC_START(ffi_call_SYSV)
@ call (fn) (...)
call_reg(ip)
-
+
@ Remove the space we pushed for the args
mov sp, fp
@ Load r2 with the pointer to storage for the return value
ldr r2, [sp, #24]
- @ Load r3 with the return type code
+ @ Load r3 with the return type code
ldr r3, [sp, #12]
@ If the return value pointer is NULL, assume no return value.
@@ -205,7 +228,7 @@ ARM_FUNC_START(ffi_call_SYSV)
#if defined(__SOFTFP__) || defined(__ARM_EABI__)
cmpne r3, #FFI_TYPE_DOUBLE
#endif
- stmiaeq r2, {r0, r1}
+ stmeqia r2, {r0, r1}
#if !defined(__SOFTFP__) && !defined(__ARM_EABI__)
beq LSYM(Lepilogue)
@@ -243,7 +266,7 @@ LSYM(Lepilogue):
void *args;
*/
-ARM_FUNC_START(ffi_closure_SYSV)
+ARM_FUNC_START ffi_closure_SYSV
UNWIND .pad #16
add ip, sp, #16
stmfd sp!, {ip, lr}
@@ -322,7 +345,7 @@ ARM_FUNC_START(ffi_closure_SYSV)
@ r3: fig->flags
@ sp+0: ecif.rvalue
-ARM_FUNC_START(ffi_call_VFP)
+ARM_FUNC_START ffi_call_VFP
@ Save registers
stmfd sp!, {r0-r3, fp, lr}
UNWIND .save {r0-r3, fp, lr}
@@ -374,7 +397,7 @@ LSYM(Lbase_args):
@ the return value
ldr r2, [sp, #24]
- @ Load r3 with the return type code
+ @ Load r3 with the return type code
ldr r3, [sp, #12]
@ If the return value pointer is NULL,
@@ -393,7 +416,7 @@ LSYM(Lbase_args):
cmp r3, #FFI_TYPE_FLOAT
fstseq s0, [r2]
beq LSYM(Lepilogue_vfp)
-
+
cmp r3, #FFI_TYPE_DOUBLE
fstdeq d0, [r2]
beq LSYM(Lepilogue_vfp)
@@ -410,7 +433,7 @@ LSYM(Lepilogue_vfp):
.size CNAME(ffi_call_VFP),.ffi_call_VFP_end-CNAME(ffi_call_VFP)
-ARM_FUNC_START(ffi_closure_VFP)
+ARM_FUNC_START ffi_closure_VFP
fstmfdd sp!, {d0-d7}
@ r0-r3, then d0-d7
UNWIND .pad #80
@@ -443,7 +466,7 @@ ARM_FUNC_START(ffi_closure_VFP)
cmp r0, #FFI_TYPE_STRUCT_VFP_DOUBLE
beq .Lretdouble_struct_vfp
-
+
.Lclosure_epilogue_vfp:
add sp, sp, #72
ldmfd sp, {sp, pc}
diff --git a/src/closures.c b/src/closures.c
index 6eac601..4d0a0b6 100644
--- a/src/closures.c
+++ b/src/closures.c
@@ -264,7 +264,7 @@ static int
open_temp_exec_file_dir (const char *dir)
{
static const char suffix[] = "/ffiXXXXXX";
- size_t lendir = strlen (dir);
+ int lendir = strlen (dir);
char *tempname = __builtin_alloca (lendir + sizeof (suffix));
if (!tempname)
diff --git a/src/dlmalloc.c b/src/dlmalloc.c
index 8725b4f..3e2ea6f 100644
--- a/src/dlmalloc.c
+++ b/src/dlmalloc.c
@@ -1661,7 +1661,7 @@ struct malloc_chunk {
typedef struct malloc_chunk mchunk;
typedef struct malloc_chunk* mchunkptr;
typedef struct malloc_chunk* sbinptr; /* The type of bins of chunks */
-typedef size_t bindex_t; /* Described below */
+typedef unsigned int bindex_t; /* Described below */
typedef unsigned int binmap_t; /* Described below */
typedef unsigned int flag_t; /* The type of various bit flag sets */
@@ -3388,7 +3388,7 @@ static void add_segment(mstate m, char* tbase, size_t tsize, flag_t mmapped) {
*ss = m->seg; /* Push current record */
m->seg.base = tbase;
m->seg.size = tsize;
- (void)set_segment_flags(&m->seg, mmapped);
+ set_segment_flags(&m->seg, mmapped);
m->seg.next = ss;
/* Insert trailing fenceposts */
@@ -3548,7 +3548,7 @@ static void* sys_alloc(mstate m, size_t nb) {
if (!is_initialized(m)) { /* first-time initialization */
m->seg.base = m->least_addr = tbase;
m->seg.size = tsize;
- (void)set_segment_flags(&m->seg, mmap_flag);
+ set_segment_flags(&m->seg, mmap_flag);
m->magic = mparams.magic;
init_bins(m);
if (is_global(m))
diff --git a/src/prep_cif.c b/src/prep_cif.c
index e216ef0..a66ee23 100644
--- a/src/prep_cif.c
+++ b/src/prep_cif.c
@@ -187,7 +187,7 @@ ffi_status FFI_HIDDEN ffi_prep_cif_core(ffi_cif *cif, ffi_abi abi,
{
/* Add any padding if necessary */
if (((*ptr)->alignment - 1) & bytes)
- bytes = (unsigned)ALIGN(bytes, (*ptr)->alignment);
+ bytes = ALIGN(bytes, (*ptr)->alignment);
#ifdef TILE
if (bytes < 10 * FFI_SIZEOF_ARG &&
diff --git a/src/x86/ffi.c b/src/x86/ffi.c
index ba33775..307cd19 100644
--- a/src/x86/ffi.c
+++ b/src/x86/ffi.c
@@ -42,7 +42,6 @@
/* ffi_prep_args is called by the assembly routine once stack space
has been allocated for the function's arguments */
-void ffi_prep_args(char *stack, extended_cif *ecif);
void ffi_prep_args(char *stack, extended_cif *ecif)
{
register unsigned int i;
@@ -342,7 +341,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
ecif.cif = cif;
ecif.avalue = avalue;
-
+
/* If the return value is a struct and we don't have a return */
/* value address then we need to make one */
@@ -364,9 +363,9 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
#endif
else
ecif.rvalue = rvalue;
-
-
- switch (cif->abi)
+
+
+ switch (cif->abi)
{
#ifdef X86_WIN64
case FFI_WIN64:
@@ -457,16 +456,16 @@ ffi_closure_win64_inner (ffi_closure *closure, void *args) {
void *resp = &result;
cif = closure->cif;
- arg_area = (void**) alloca (cif->nargs * sizeof (void*));
+ arg_area = (void**) alloca (cif->nargs * sizeof (void*));
/* this call will initialize ARG_AREA, such that each
- * element in that array points to the corresponding
+ * element in that array points to the corresponding
* value on the stack; and if the function returns
* a structure, it will change RESP to point to the
* structure return address. */
ffi_prep_incoming_args_SYSV(args, &resp, arg_area, cif);
-
+
(closure->fun) (cif, resp, arg_area, closure->user_data);
/* The result is returned in rax. This does the right thing for
@@ -486,10 +485,10 @@ ffi_closure_SYSV_inner (ffi_closure *closure, void **respp, void *args)
void **arg_area;
cif = closure->cif;
- arg_area = (void**) alloca (cif->nargs * sizeof (void*));
+ arg_area = (void**) alloca (cif->nargs * sizeof (void*));
/* this call will initialize ARG_AREA, such that each
- * element in that array points to the corresponding
+ * element in that array points to the corresponding
* value on the stack; and if the function returns
* a structure, it will change RESP to point to the
* structure return address. */
@@ -553,12 +552,12 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, void **avalue,
#endif
{
z = (*p_arg)->size;
-
+
/* because we're little endian, this is what it turns into. */
-
+
*p_argv = (void*) argp;
}
-
+
p_argv++;
#ifdef X86_WIN64
argp += (z + sizeof(void*) - 1) & ~(sizeof(void*) - 1);
@@ -566,7 +565,7 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, void **avalue,
argp += z;
#endif
}
-
+
return;
}
@@ -654,7 +653,7 @@ ffi_prep_closure_loc (ffi_closure* closure,
#ifdef X86_WIN64
#define ISFLOAT(IDX) (cif->arg_types[IDX]->type == FFI_TYPE_FLOAT || cif->arg_types[IDX]->type == FFI_TYPE_DOUBLE)
#define FLAG(IDX) (cif->nargs>(IDX)&&ISFLOAT(IDX)?(1<<(IDX)):0)
- if (cif->abi == FFI_WIN64)
+ if (cif->abi == FFI_WIN64)
{
int mask = FLAG(0)|FLAG(1)|FLAG(2)|FLAG(3);
FFI_INIT_TRAMPOLINE_WIN64 (&closure->tramp[0],
@@ -695,7 +694,7 @@ ffi_prep_closure_loc (ffi_closure* closure,
{
return FFI_BAD_ABI;
}
-
+
closure->cif = cif;
closure->user_data = user_data;
closure->fun = fun;
@@ -733,7 +732,7 @@ ffi_prep_raw_closure_loc (ffi_raw_closure* closure,
FFI_ASSERT (cif->arg_types[i]->type != FFI_TYPE_STRUCT);
FFI_ASSERT (cif->arg_types[i]->type != FFI_TYPE_LONGDOUBLE);
}
-
+
#ifdef X86_WIN32
if (cif->abi == FFI_SYSV)
{
@@ -755,7 +754,7 @@ ffi_prep_raw_closure_loc (ffi_raw_closure* closure,
return FFI_OK;
}
-static void
+static void
ffi_prep_args_raw(char *stack, extended_cif *ecif)
{
memcpy (stack, ecif->avalue, ecif->cif->bytes);
@@ -774,7 +773,7 @@ ffi_raw_call(ffi_cif *cif, void (*fn)(void), void *rvalue, ffi_raw *fake_avalue)
ecif.cif = cif;
ecif.avalue = avalue;
-
+
/* If the return value is a struct and we don't have a return */
/* value address then we need to make one */
@@ -786,9 +785,9 @@ ffi_raw_call(ffi_cif *cif, void (*fn)(void), void *rvalue, ffi_raw *fake_avalue)
}
else
ecif.rvalue = rvalue;
-
-
- switch (cif->abi)
+
+
+ switch (cif->abi)
{
#ifdef X86_WIN32
case FFI_SYSV:
diff --git a/src/x86/ffi64.c b/src/x86/ffi64.c
index bd241ef..bd917f0 100644
--- a/src/x86/ffi64.c
+++ b/src/x86/ffi64.c
@@ -168,7 +168,7 @@ classify_argument (ffi_type *type, enum x86_64_reg_class classes[],
case FFI_TYPE_SINT64:
case FFI_TYPE_POINTER:
{
- size_t size = byte_offset + type->size;
+ int size = byte_offset + type->size;
if (size <= 4)
{
@@ -210,7 +210,7 @@ classify_argument (ffi_type *type, enum x86_64_reg_class classes[],
case FFI_TYPE_STRUCT:
{
const int UNITS_PER_WORD = 8;
- int words = ((int)type->size + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
+ int words = (type->size + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
ffi_type **ptr;
int i;
enum x86_64_reg_class subclasses[MAX_CLASSES];
@@ -242,7 +242,7 @@ classify_argument (ffi_type *type, enum x86_64_reg_class classes[],
return 0;
for (i = 0; i < num; i++)
{
- size_t pos = byte_offset / 8;
+ int pos = byte_offset / 8;
classes[i + pos] =
merge_classes (subclasses[i], classes[i + pos]);
}
@@ -411,7 +411,7 @@ ffi_prep_cif_machdep (ffi_cif *cif)
if (ssecount)
flags |= 1 << 11;
cif->flags = flags;
- cif->bytes = (unsigned)ALIGN (bytes, 8);
+ cif->bytes = ALIGN (bytes, 8);
return FFI_OK;
}