[pypy-commit] pypy default: expose ARM libffi ABI information

bivab noreply at buildbot.pypy.org
Tue Apr 16 22:35:05 CEST 2013


Author: David Schneider <david.schneider at picle.org>
Branch: 
Changeset: r63432:5be8df0b14e7
Date: 2013-04-16 22:28 +0200
http://bitbucket.org/pypy/pypy/changeset/5be8df0b14e7/

Log:	expose ARM libffi ABI information

diff --git a/rpython/rlib/clibffi.py b/rpython/rlib/clibffi.py
--- a/rpython/rlib/clibffi.py
+++ b/rpython/rlib/clibffi.py
@@ -4,6 +4,7 @@
 
 from rpython.rtyper.tool import rffi_platform
 from rpython.rtyper.lltypesystem import lltype, rffi
+from rpython.rtyper.tool import rffi_platform
 from rpython.rlib.unroll import unrolling_iterable
 from rpython.rlib.rarithmetic import intmask, is_emulated_long
 from rpython.rlib.objectmodel import we_are_translated
@@ -15,6 +16,7 @@
 from rpython.translator.tool.cbuild import ExternalCompilationInfo
 from rpython.translator.platform import platform
 from rpython.conftest import cdir
+from platform import machine
 import py
 import os
 import sys
@@ -35,6 +37,8 @@
 _LITTLE_ENDIAN = sys.byteorder == 'little'
 _BIG_ENDIAN = sys.byteorder == 'big'
 
+_ARM = rffi_platform.getdefined('__arm__', '')
+
 if _WIN32:
     from rpython.rlib import rwin32
 
@@ -154,6 +158,10 @@
     if _WIN32 and not _WIN64:
         FFI_STDCALL = rffi_platform.ConstantInteger('FFI_STDCALL')
 
+    if _ARM:
+        FFI_SYSV = rffi_platform.ConstantInteger('FFI_SYSV')
+        FFI_VFP = rffi_platform.ConstantInteger('FFI_VFP')
+
     FFI_TYPE_STRUCT = rffi_platform.ConstantInteger('FFI_TYPE_STRUCT')
 
     size_t = rffi_platform.SimpleType("size_t", rffi.ULONG)
@@ -327,6 +335,9 @@
 FFI_DEFAULT_ABI = cConfig.FFI_DEFAULT_ABI
 if _WIN32 and not _WIN64:
     FFI_STDCALL = cConfig.FFI_STDCALL
+if _ARM:
+    FFI_SYSV = cConfig.FFI_SYSV
+    FFI_VFP = cConfig.FFI_VFP
 FFI_TYPE_STRUCT = cConfig.FFI_TYPE_STRUCT
 FFI_CIFP = lltype.Ptr(cConfig.ffi_cif)
 


More information about the pypy-commit mailing list