ffi 1.9.18 → 1.9.21
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ffi might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/Rakefile +14 -3
- data/ext/ffi_c/AbstractMemory.c +6 -1
- data/ext/ffi_c/Platform.c +10 -2
- data/ext/ffi_c/extconf.rb +7 -2
- data/ext/ffi_c/libffi.bsd.mk +9 -3
- data/ext/ffi_c/libffi.darwin.mk +14 -4
- data/ext/ffi_c/libffi.gnu.mk +2 -1
- data/ext/ffi_c/libffi.mk +9 -4
- data/ext/ffi_c/libffi/ChangeLog.libffi +2 -2
- data/ext/ffi_c/libffi/{ChangeLog → ChangeLog.libffi-3.1} +1402 -2
- data/ext/ffi_c/libffi/ChangeLog.v1 +1 -1
- data/ext/ffi_c/libffi/LICENSE +1 -1
- data/ext/ffi_c/libffi/Makefile.am +166 -157
- data/ext/ffi_c/libffi/README +164 -52
- data/ext/ffi_c/libffi/acinclude.m4 +381 -0
- data/ext/ffi_c/libffi/autogen.sh +2 -0
- data/ext/ffi_c/libffi/configure.ac +148 -256
- data/ext/ffi_c/libffi/configure.host +265 -4
- data/ext/ffi_c/libffi/doc/Makefile.am +3 -0
- data/ext/ffi_c/libffi/doc/libffi.texi +430 -45
- data/ext/ffi_c/libffi/doc/version.texi +4 -4
- data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +207 -0
- data/ext/ffi_c/libffi/include/Makefile.am +3 -3
- data/ext/ffi_c/libffi/include/ffi.h.in +107 -50
- data/ext/ffi_c/libffi/include/ffi_cfi.h +55 -0
- data/ext/ffi_c/libffi/include/ffi_common.h +32 -11
- data/ext/ffi_c/libffi/libffi.map.in +80 -0
- data/ext/ffi_c/libffi/libffi.pc.in +3 -2
- data/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +637 -0
- data/ext/ffi_c/libffi/libtool-ldflags +106 -0
- data/ext/ffi_c/libffi/libtool-version +1 -1
- data/ext/ffi_c/libffi/m4/asmcfi.m4 +13 -0
- data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +69 -0
- data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +13 -8
- data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +31 -104
- data/ext/ffi_c/libffi/m4/{ax_check_compiler_flags.m4 → ax_check_compile_flag.m4} +30 -34
- data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +32 -11
- data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +6 -5
- data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +31 -21
- data/ext/ffi_c/libffi/man/Makefile.am +2 -2
- data/ext/ffi_c/libffi/man/ffi.3 +10 -0
- data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +6 -4
- data/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +73 -0
- data/ext/ffi_c/libffi/msvcc.sh +72 -9
- data/ext/ffi_c/libffi/src/aarch64/ffi.c +941 -0
- data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +81 -0
- data/ext/ffi_c/libffi/src/aarch64/internal.h +67 -0
- data/ext/ffi_c/libffi/src/aarch64/sysv.S +438 -0
- data/ext/ffi_c/libffi/src/alpha/ffi.c +335 -98
- data/ext/ffi_c/libffi/src/alpha/ffitarget.h +10 -1
- data/ext/ffi_c/libffi/src/alpha/internal.h +23 -0
- data/ext/ffi_c/libffi/src/alpha/osf.S +161 -266
- data/ext/ffi_c/libffi/src/arc/arcompact.S +135 -0
- data/ext/ffi_c/libffi/src/arc/ffi.c +266 -0
- data/ext/ffi_c/libffi/src/arc/ffitarget.h +53 -0
- data/ext/ffi_c/libffi/src/arm/ffi.c +597 -517
- data/ext/ffi_c/libffi/src/arm/ffitarget.h +24 -7
- data/ext/ffi_c/libffi/src/arm/internal.h +7 -0
- data/ext/ffi_c/libffi/src/arm/sysv.S +303 -417
- data/ext/ffi_c/libffi/src/avr32/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/bfin/ffi.c +196 -0
- data/ext/ffi_c/libffi/src/bfin/ffitarget.h +43 -0
- data/ext/ffi_c/libffi/src/bfin/sysv.S +179 -0
- data/ext/ffi_c/libffi/src/closures.c +319 -44
- data/ext/ffi_c/libffi/src/cris/ffi.c +10 -7
- data/ext/ffi_c/libffi/src/cris/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/debug.c +6 -1
- data/ext/ffi_c/libffi/src/dlmalloc.c +16 -11
- data/ext/ffi_c/libffi/src/frv/ffi.c +1 -1
- data/ext/ffi_c/libffi/src/frv/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/ia64/ffi.c +11 -7
- data/ext/ffi_c/libffi/src/ia64/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/java_raw_api.c +23 -5
- data/ext/ffi_c/libffi/src/m32r/ffi.c +1 -1
- data/ext/ffi_c/libffi/src/m32r/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/m68k/ffi.c +87 -13
- data/ext/ffi_c/libffi/src/m68k/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/m68k/sysv.S +119 -32
- data/ext/ffi_c/libffi/src/m88k/ffi.c +400 -0
- data/ext/ffi_c/libffi/src/m88k/ffitarget.h +49 -0
- data/ext/ffi_c/libffi/src/m88k/obsd.S +209 -0
- data/ext/ffi_c/libffi/src/metag/ffi.c +330 -0
- data/ext/ffi_c/libffi/{fficonfig.hw → src/metag/ffitarget.h} +22 -26
- data/ext/ffi_c/libffi/src/metag/sysv.S +311 -0
- data/ext/ffi_c/libffi/src/microblaze/ffi.c +321 -0
- data/ext/ffi_c/libffi/src/microblaze/ffitarget.h +53 -0
- data/ext/ffi_c/libffi/src/microblaze/sysv.S +302 -0
- data/ext/ffi_c/libffi/src/mips/ffi.c +95 -28
- data/ext/ffi_c/libffi/src/mips/ffitarget.h +9 -2
- data/ext/ffi_c/libffi/src/mips/n32.S +126 -56
- data/ext/ffi_c/libffi/src/mips/o32.S +148 -27
- data/ext/ffi_c/libffi/src/moxie/eabi.S +55 -82
- data/ext/ffi_c/libffi/src/moxie/ffi.c +40 -44
- data/ext/ffi_c/libffi/src/moxie/ffitarget.h +52 -0
- data/ext/ffi_c/libffi/src/nios2/ffi.c +304 -0
- data/ext/ffi_c/libffi/src/nios2/ffitarget.h +52 -0
- data/ext/ffi_c/libffi/src/nios2/sysv.S +136 -0
- data/ext/ffi_c/libffi/src/or1k/ffi.c +328 -0
- data/ext/ffi_c/libffi/src/or1k/ffitarget.h +58 -0
- data/ext/ffi_c/libffi/src/or1k/sysv.S +107 -0
- data/ext/ffi_c/libffi/src/pa/ffitarget.h +8 -1
- data/ext/ffi_c/libffi/src/powerpc/aix.S +6 -6
- data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +3 -1
- data/ext/ffi_c/libffi/src/powerpc/asm.h +2 -2
- data/ext/ffi_c/libffi/src/powerpc/darwin.S +2 -7
- data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +22 -26
- data/ext/ffi_c/libffi/src/powerpc/ffi.c +103 -1378
- data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +25 -25
- data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +945 -0
- data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +94 -0
- data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +923 -0
- data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +100 -44
- data/ext/ffi_c/libffi/src/powerpc/linux64.S +100 -59
- data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +360 -108
- data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +138 -68
- data/ext/ffi_c/libffi/src/powerpc/sysv.S +68 -112
- data/ext/ffi_c/libffi/src/prep_cif.c +108 -24
- data/ext/ffi_c/libffi/src/raw_api.c +18 -5
- data/ext/ffi_c/libffi/src/s390/ffi.c +294 -318
- data/ext/ffi_c/libffi/src/s390/ffitarget.h +9 -1
- data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
- data/ext/ffi_c/libffi/src/s390/sysv.S +257 -366
- data/ext/ffi_c/libffi/src/sh/ffi.c +4 -3
- data/ext/ffi_c/libffi/src/sh/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/sh64/ffi.c +3 -2
- data/ext/ffi_c/libffi/src/sh64/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/sparc/ffi.c +326 -527
- data/ext/ffi_c/libffi/src/sparc/ffi64.c +608 -0
- data/ext/ffi_c/libffi/src/sparc/ffitarget.h +20 -7
- data/ext/ffi_c/libffi/src/sparc/internal.h +26 -0
- data/ext/ffi_c/libffi/src/sparc/v8.S +364 -234
- data/ext/ffi_c/libffi/src/sparc/v9.S +340 -207
- data/ext/ffi_c/libffi/src/tile/ffi.c +355 -0
- data/ext/ffi_c/libffi/src/tile/ffitarget.h +65 -0
- data/ext/ffi_c/libffi/src/tile/tile.S +360 -0
- data/ext/ffi_c/libffi/src/types.c +43 -14
- data/ext/ffi_c/libffi/src/vax/elfbsd.S +195 -0
- data/ext/ffi_c/libffi/src/vax/ffi.c +276 -0
- data/ext/ffi_c/libffi/src/vax/ffitarget.h +49 -0
- data/ext/ffi_c/libffi/src/x86/asmnames.h +30 -0
- data/ext/ffi_c/libffi/src/x86/ffi.c +589 -500
- data/ext/ffi_c/libffi/src/x86/ffi64.c +338 -116
- data/ext/ffi_c/libffi/src/x86/ffitarget.h +55 -35
- data/ext/ffi_c/libffi/src/x86/ffiw64.c +287 -0
- data/ext/ffi_c/libffi/src/x86/internal.h +29 -0
- data/ext/ffi_c/libffi/src/x86/internal64.h +22 -0
- data/ext/ffi_c/libffi/src/x86/sysv.S +975 -400
- data/ext/ffi_c/libffi/src/x86/unix64.S +398 -299
- data/ext/ffi_c/libffi/src/x86/win64.S +222 -458
- data/ext/ffi_c/libffi/src/x86/win64_intel.S +237 -0
- data/ext/ffi_c/libffi/src/xtensa/ffi.c +298 -0
- data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +53 -0
- data/ext/ffi_c/libffi/src/xtensa/sysv.S +253 -0
- data/ext/ffi_c/libffi/stamp-h.in +1 -0
- data/ext/ffi_c/libffi/testsuite/Makefile.am +78 -73
- data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +120 -25
- data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +21 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +46 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +4 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/{closure_stdcall.c → closure_simple.c} +7 -16
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +4 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +4 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +10 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +3 -3
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +10 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +70 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +55 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +11 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +114 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +44 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +45 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +45 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +44 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +23 -40
- data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +3 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +6 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +4 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +107 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +18 -19
- data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +6 -16
- data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +57 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +70 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +78 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +8 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +121 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +46 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +127 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +1 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +7 -7
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +7 -7
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +49 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +49 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +55 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +9 -7
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +7 -7
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +7 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +9 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +9 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +61 -0
- data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest.cc +3 -10
- data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest_ffi_call.cc +2 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +196 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +121 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +123 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +125 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +91 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +42 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +71 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +80 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +16 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/{libffi.special/special.exp → libffi.complex/complex.exp} +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +51 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +7 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +7 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +7 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +86 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +1 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +78 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +37 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +41 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +44 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +34 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +28 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +1 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +36 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +19 -0
- data/ffi.gemspec +2 -2
- data/lib/ffi/enum.rb +124 -0
- data/lib/ffi/library.rb +65 -13
- data/lib/ffi/platform.rb +7 -2
- data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
- data/lib/ffi/platform/x86_64-windows/types.conf +113 -20
- data/lib/ffi/pointer.rb +1 -0
- data/lib/ffi/struct.rb +0 -2
- data/lib/ffi/version.rb +1 -1
- data/spec/ffi/bitmask_spec.rb +575 -0
- data/spec/ffi/fixtures/BitmaskTest.c +51 -0
- data/spec/ffi/rbx/memory_pointer_spec.rb +4 -0
- data/spec/ffi/struct_spec.rb +0 -4
- metadata +143 -51
- data/ext/ffi_c/libffi/Makefile.in +0 -1820
- data/ext/ffi_c/libffi/Makefile.vc +0 -141
- data/ext/ffi_c/libffi/Makefile.vc64 +0 -141
- data/ext/ffi_c/libffi/aclocal.m4 +0 -1873
- data/ext/ffi_c/libffi/build-ios.sh +0 -67
- data/ext/ffi_c/libffi/compile +0 -143
- data/ext/ffi_c/libffi/config.guess +0 -1501
- data/ext/ffi_c/libffi/config.sub +0 -1705
- data/ext/ffi_c/libffi/configure +0 -17191
- data/ext/ffi_c/libffi/depcomp +0 -630
- data/ext/ffi_c/libffi/doc/libffi.info +0 -593
- data/ext/ffi_c/libffi/doc/stamp-vti +0 -4
- data/ext/ffi_c/libffi/fficonfig.h.in +0 -199
- data/ext/ffi_c/libffi/include/Makefile.in +0 -487
- data/ext/ffi_c/libffi/include/ffi.h.vc +0 -427
- data/ext/ffi_c/libffi/include/ffi.h.vc64 +0 -427
- data/ext/ffi_c/libffi/install-sh +0 -520
- data/ext/ffi_c/libffi/ltmain.sh +0 -9636
- data/ext/ffi_c/libffi/m4/libtool.m4 +0 -7831
- data/ext/ffi_c/libffi/m4/ltoptions.m4 +0 -369
- data/ext/ffi_c/libffi/m4/ltsugar.m4 +0 -123
- data/ext/ffi_c/libffi/m4/ltversion.m4 +0 -23
- data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +0 -98
- data/ext/ffi_c/libffi/man/Makefile.in +0 -466
- data/ext/ffi_c/libffi/mdate-sh +0 -201
- data/ext/ffi_c/libffi/missing +0 -376
- data/ext/ffi_c/libffi/src/arm/gentramp.sh +0 -118
- data/ext/ffi_c/libffi/src/arm/trampoline.S +0 -4450
- data/ext/ffi_c/libffi/src/x86/darwin.S +0 -444
- data/ext/ffi_c/libffi/src/x86/darwin64.S +0 -416
- data/ext/ffi_c/libffi/src/x86/freebsd.S +0 -458
- data/ext/ffi_c/libffi/src/x86/win32.S +0 -1065
- data/ext/ffi_c/libffi/testsuite/Makefile.in +0 -500
- data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +0 -300
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +0 -63
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +0 -44
- data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +0 -96
- data/ext/ffi_c/libffi/texinfo.tex +0 -7210
@@ -2,7 +2,7 @@ The libffi version 1 ChangeLog archive.
|
|
2
2
|
|
3
3
|
Version 1 of libffi had per-directory ChangeLogs. Current and future
|
4
4
|
versions have a single ChangeLog file in the root directory. The
|
5
|
-
version 1 ChangeLogs have all been
|
5
|
+
version 1 ChangeLogs have all been concatenated into this file for
|
6
6
|
future reference only.
|
7
7
|
|
8
8
|
--- libffi ----------------------------------------------------------------
|
data/ext/ffi_c/libffi/LICENSE
CHANGED
@@ -2,40 +2,27 @@
|
|
2
2
|
|
3
3
|
AUTOMAKE_OPTIONS = foreign subdir-objects
|
4
4
|
|
5
|
+
ACLOCAL_AMFLAGS = -I m4
|
6
|
+
|
5
7
|
SUBDIRS = include testsuite man
|
8
|
+
if BUILD_DOCS
|
9
|
+
## This hack is needed because it doesn't seem possible to make a
|
10
|
+
## conditional info_TEXINFOS in Automake. At least Automake 1.14
|
11
|
+
## either gives errors -- if this attempted in the most
|
12
|
+
## straightforward way -- or simply unconditionally tries to build the
|
13
|
+
## info file.
|
14
|
+
SUBDIRS += doc
|
15
|
+
endif
|
16
|
+
|
17
|
+
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj \
|
18
|
+
ChangeLog.libffi ChangeLog.libffi-3.1 \
|
19
|
+
m4/libtool.m4 m4/lt~obsolete.m4 \
|
20
|
+
m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
|
21
|
+
m4/ltversion.m4 src/debug.c msvcc.sh \
|
22
|
+
generate-darwin-source-and-headers.py \
|
23
|
+
libffi.xcodeproj/project.pbxproj \
|
24
|
+
libtool-ldflags
|
6
25
|
|
7
|
-
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
8
|
-
src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
|
9
|
-
src/arm/ffi.c src/arm/sysv.S src/arm/trampoline.S \
|
10
|
-
src/arm/ffitarget.h src/avr32/ffi.c src/avr32/sysv.S \
|
11
|
-
src/avr32/ffitarget.h src/cris/ffi.c src/cris/sysv.S \
|
12
|
-
src/cris/ffitarget.h src/ia64/ffi.c src/ia64/ffitarget.h \
|
13
|
-
src/ia64/ia64_flags.h src/ia64/unix.S src/mips/ffi.c \
|
14
|
-
src/mips/n32.S src/mips/o32.S src/mips/ffitarget.h \
|
15
|
-
src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
|
16
|
-
src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
|
17
|
-
src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/linux64.S \
|
18
|
-
src/powerpc/linux64_closure.S src/powerpc/ppc_closure.S \
|
19
|
-
src/powerpc/asm.h src/powerpc/aix.S src/powerpc/darwin.S \
|
20
|
-
src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \
|
21
|
-
src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \
|
22
|
-
src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \
|
23
|
-
src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h src/sh64/ffi.c \
|
24
|
-
src/sh64/sysv.S src/sh64/ffitarget.h src/sparc/v8.S \
|
25
|
-
src/sparc/v9.S src/sparc/ffitarget.h src/sparc/ffi.c \
|
26
|
-
src/x86/darwin64.S src/x86/ffi.c src/x86/sysv.S \
|
27
|
-
src/x86/win32.S src/x86/win64.S src/x86/darwin.S \
|
28
|
-
src/x86/freebsd.S src/x86/ffi64.c src/x86/unix64.S \
|
29
|
-
src/x86/ffitarget.h src/pa/ffitarget.h src/pa/ffi.c \
|
30
|
-
src/pa/linux.S src/pa/hpux32.S src/frv/ffi.c src/frv/eabi.S \
|
31
|
-
src/frv/ffitarget.h src/dlmalloc.c src/moxie/ffi.c \
|
32
|
-
src/moxie/eabi.S libtool-version ChangeLog.libffi \
|
33
|
-
m4/libtool.m4 m4/lt~obsolete.m4 m4/ltoptions.m4 m4/ltsugar.m4 \
|
34
|
-
m4/ltversion.m4 build-ios.sh src/arm/gentramp.sh src/debug.c \
|
35
|
-
msvcc.sh
|
36
|
-
|
37
|
-
|
38
|
-
info_TEXINFOS = doc/libffi.texi
|
39
26
|
|
40
27
|
## ################################################################
|
41
28
|
|
@@ -47,150 +34,172 @@ info_TEXINFOS = doc/libffi.texi
|
|
47
34
|
# values defined in terms of make variables, as is the case for CC and
|
48
35
|
# friends when we are called from the top level Makefile.
|
49
36
|
AM_MAKEFLAGS = \
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
37
|
+
'AR_FLAGS=$(AR_FLAGS)' \
|
38
|
+
'CC_FOR_BUILD=$(CC_FOR_BUILD)' \
|
39
|
+
'CFLAGS=$(CFLAGS)' \
|
40
|
+
'CXXFLAGS=$(CXXFLAGS)' \
|
41
|
+
'CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)' \
|
42
|
+
'CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)' \
|
43
|
+
'INSTALL=$(INSTALL)' \
|
44
|
+
'INSTALL_DATA=$(INSTALL_DATA)' \
|
45
|
+
'INSTALL_PROGRAM=$(INSTALL_PROGRAM)' \
|
46
|
+
'INSTALL_SCRIPT=$(INSTALL_SCRIPT)' \
|
47
|
+
'JC1FLAGS=$(JC1FLAGS)' \
|
48
|
+
'LDFLAGS=$(LDFLAGS)' \
|
49
|
+
'LIBCFLAGS=$(LIBCFLAGS)' \
|
50
|
+
'LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)' \
|
51
|
+
'MAKE=$(MAKE)' \
|
52
|
+
'MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)' \
|
53
|
+
'PICFLAG=$(PICFLAG)' \
|
54
|
+
'PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)' \
|
55
|
+
'RUNTESTFLAGS=$(RUNTESTFLAGS)' \
|
56
|
+
'SHELL=$(SHELL)' \
|
57
|
+
'exec_prefix=$(exec_prefix)' \
|
58
|
+
'infodir=$(infodir)' \
|
59
|
+
'libdir=$(libdir)' \
|
60
|
+
'mandir=$(mandir)' \
|
61
|
+
'prefix=$(prefix)' \
|
62
|
+
'AR=$(AR)' \
|
63
|
+
'AS=$(AS)' \
|
64
|
+
'CC=$(CC)' \
|
65
|
+
'CXX=$(CXX)' \
|
66
|
+
'LD=$(LD)' \
|
67
|
+
'NM=$(NM)' \
|
68
|
+
'RANLIB=$(RANLIB)' \
|
69
|
+
'DESTDIR=$(DESTDIR)'
|
70
|
+
|
71
|
+
# Subdir rules rely on $(FLAGS_TO_PASS)
|
72
|
+
FLAGS_TO_PASS = $(AM_MAKEFLAGS)
|
83
73
|
|
84
74
|
MAKEOVERRIDES=
|
85
75
|
|
86
|
-
|
76
|
+
pkgconfigdir = $(libdir)/pkgconfig
|
77
|
+
pkgconfig_DATA = libffi.pc
|
87
78
|
|
88
|
-
|
79
|
+
toolexeclib_LTLIBRARIES = libffi.la
|
89
80
|
noinst_LTLIBRARIES = libffi_convenience.la
|
90
81
|
|
91
|
-
libffi_la_SOURCES = src/
|
82
|
+
libffi_la_SOURCES = src/prep_cif.c src/types.c \
|
92
83
|
src/raw_api.c src/java_raw_api.c src/closures.c
|
93
84
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
endif
|
168
|
-
if SH64
|
169
|
-
nodist_libffi_la_SOURCES += src/sh64/sysv.S src/sh64/ffi.c
|
170
|
-
endif
|
171
|
-
if PA_LINUX
|
172
|
-
nodist_libffi_la_SOURCES += src/pa/linux.S src/pa/ffi.c
|
173
|
-
endif
|
174
|
-
if PA_HPUX
|
175
|
-
nodist_libffi_la_SOURCES += src/pa/hpux32.S src/pa/ffi.c
|
176
|
-
endif
|
85
|
+
if FFI_DEBUG
|
86
|
+
libffi_la_SOURCES += src/debug.c
|
87
|
+
endif
|
88
|
+
|
89
|
+
noinst_HEADERS = \
|
90
|
+
src/aarch64/ffitarget.h src/aarch64/internal.h \
|
91
|
+
src/alpha/ffitarget.h src/alpha/internal.h \
|
92
|
+
src/arc/ffitarget.h \
|
93
|
+
src/arm/ffitarget.h src/arm/internal.h \
|
94
|
+
src/avr32/ffitarget.h \
|
95
|
+
src/bfin/ffitarget.h \
|
96
|
+
src/cris/ffitarget.h \
|
97
|
+
src/frv/ffitarget.h \
|
98
|
+
src/ia64/ffitarget.h src/ia64/ia64_flags.h \
|
99
|
+
src/m32r/ffitarget.h \
|
100
|
+
src/m68k/ffitarget.h \
|
101
|
+
src/m88k/ffitarget.h \
|
102
|
+
src/metag/ffitarget.h \
|
103
|
+
src/microblaze/ffitarget.h \
|
104
|
+
src/mips/ffitarget.h \
|
105
|
+
src/moxie/ffitarget.h \
|
106
|
+
src/nios2/ffitarget.h \
|
107
|
+
src/or1k/ffitarget.h \
|
108
|
+
src/pa/ffitarget.h \
|
109
|
+
src/powerpc/ffitarget.h src/powerpc/asm.h src/powerpc/ffi_powerpc.h \
|
110
|
+
src/s390/ffitarget.h \
|
111
|
+
src/sh/ffitarget.h \
|
112
|
+
src/sh64/ffitarget.h \
|
113
|
+
src/sparc/ffitarget.h src/sparc/internal.h \
|
114
|
+
src/tile/ffitarget.h \
|
115
|
+
src/vax/ffitarget.h \
|
116
|
+
src/x86/ffitarget.h src/x86/internal.h src/x86/internal64.h \
|
117
|
+
src/xtensa/ffitarget.h \
|
118
|
+
src/dlmalloc.c
|
119
|
+
|
120
|
+
EXTRA_libffi_la_SOURCES = \
|
121
|
+
src/aarch64/ffi.c src/aarch64/sysv.S \
|
122
|
+
src/alpha/ffi.c src/alpha/osf.S \
|
123
|
+
src/arc/ffi.c src/arc/arcompact.S \
|
124
|
+
src/arm/ffi.c src/arm/sysv.S \
|
125
|
+
src/avr32/ffi.c src/avr32/sysv.S \
|
126
|
+
src/bfin/ffi.c src/bfin/sysv.S \
|
127
|
+
src/cris/ffi.c src/cris/sysv.S \
|
128
|
+
src/frv/ffi.c src/frv/eabi.S \
|
129
|
+
src/ia64/ffi.c src/ia64/unix.S \
|
130
|
+
src/m32r/ffi.c src/m32r/sysv.S \
|
131
|
+
src/m68k/ffi.c src/m68k/sysv.S \
|
132
|
+
src/m88k/ffi.c src/m88k/obsd.S \
|
133
|
+
src/metag/ffi.c src/metag/sysv.S \
|
134
|
+
src/microblaze/ffi.c src/microblaze/sysv.S \
|
135
|
+
src/mips/ffi.c src/mips/o32.S src/mips/n32.S \
|
136
|
+
src/moxie/ffi.c src/moxie/eabi.S \
|
137
|
+
src/nios2/ffi.c src/nios2/sysv.S \
|
138
|
+
src/or1k/ffi.c src/or1k/sysv.S \
|
139
|
+
src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
|
140
|
+
src/powerpc/ffi.c src/powerpc/ffi_sysv.c src/powerpc/ffi_linux64.c \
|
141
|
+
src/powerpc/sysv.S src/powerpc/linux64.S \
|
142
|
+
src/powerpc/linux64_closure.S src/powerpc/ppc_closure.S \
|
143
|
+
src/powerpc/aix.S src/powerpc/darwin.S src/powerpc/aix_closure.S \
|
144
|
+
src/powerpc/darwin_closure.S src/powerpc/ffi_darwin.c \
|
145
|
+
src/s390/ffi.c src/s390/sysv.S \
|
146
|
+
src/sh/ffi.c src/sh/sysv.S \
|
147
|
+
src/sh64/ffi.c src/sh64/sysv.S \
|
148
|
+
src/sparc/ffi.c src/sparc/ffi64.c src/sparc/v8.S src/sparc/v9.S \
|
149
|
+
src/tile/ffi.c src/tile/tile.S \
|
150
|
+
src/vax/ffi.c src/vax/elfbsd.S \
|
151
|
+
src/x86/ffi.c src/x86/sysv.S \
|
152
|
+
src/x86/ffiw64.c src/x86/win64.S \
|
153
|
+
src/x86/ffi64.c src/x86/unix64.S \
|
154
|
+
src/xtensa/ffi.c src/xtensa/sysv.S
|
155
|
+
|
156
|
+
TARGET_OBJ = @TARGET_OBJ@
|
157
|
+
libffi_la_LIBADD = $(TARGET_OBJ)
|
177
158
|
|
178
159
|
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
160
|
+
EXTRA_libffi_convenience_la_SOURCES = $(EXTRA_libffi_la_SOURCES)
|
161
|
+
libffi_convenience_la_LIBADD = $(libffi_la_LIBADD)
|
162
|
+
libffi_convenience_la_DEPENDENCIES = $(libffi_la_DEPENDENCIES)
|
179
163
|
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
180
164
|
|
181
|
-
|
165
|
+
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/libtool-ldflags $(LDFLAGS))
|
166
|
+
|
167
|
+
AM_CFLAGS =
|
182
168
|
if FFI_DEBUG
|
183
169
|
# Build debug. Define FFI_DEBUG on the commandline so that, when building with
|
184
170
|
# MSVC, it can link against the debug CRT.
|
185
171
|
AM_CFLAGS += -DFFI_DEBUG
|
186
172
|
endif
|
187
173
|
|
188
|
-
|
174
|
+
if LIBFFI_BUILD_VERSIONED_SHLIB
|
175
|
+
if LIBFFI_BUILD_VERSIONED_SHLIB_GNU
|
176
|
+
libffi_version_script = -Wl,--version-script,libffi.map
|
177
|
+
libffi_version_dep = libffi.map
|
178
|
+
endif
|
179
|
+
if LIBFFI_BUILD_VERSIONED_SHLIB_SUN
|
180
|
+
libffi_version_script = -Wl,-M,libffi.map-sun
|
181
|
+
libffi_version_dep = libffi.map-sun
|
182
|
+
libffi.map-sun : libffi.map $(top_srcdir)/../contrib/make_sunver.pl \
|
183
|
+
$(libffi_la_OBJECTS) $(libffi_la_LIBADD)
|
184
|
+
perl $(top_srcdir)/../contrib/make_sunver.pl libffi.map \
|
185
|
+
`echo $(libffi_la_OBJECTS) $(libffi_la_LIBADD) | \
|
186
|
+
sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \
|
187
|
+
> $@ || (rm -f $@ ; exit 1)
|
188
|
+
endif
|
189
|
+
else
|
190
|
+
libffi_version_script =
|
191
|
+
libffi_version_dep =
|
192
|
+
endif
|
193
|
+
libffi_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
|
194
|
+
|
195
|
+
libffi.map: $(top_srcdir)/libffi.map.in
|
196
|
+
$(COMPILE) -D$(TARGET) -E -x assembler-with-cpp -o $@ $<
|
197
|
+
|
198
|
+
libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
199
|
+
libffi_la_DEPENDENCIES = $(libffi_la_LIBADD) $(libffi_version_dep)
|
189
200
|
|
190
201
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
191
202
|
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
192
203
|
|
193
|
-
|
194
|
-
|
195
|
-
install-html:
|
196
|
-
install-pdf:
|
204
|
+
dist-hook:
|
205
|
+
if [ -d $(top_srcdir)/.git ] ; then (cd $(top_srcdir); git log --no-decorate) ; else echo 'See git log for history.' ; fi > $(distdir)/ChangeLog
|
data/ext/ffi_c/libffi/README
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Status
|
2
2
|
======
|
3
3
|
|
4
|
-
libffi-
|
4
|
+
libffi-4?? was released on TBD. Check the libffi web
|
5
5
|
page for updates: <URL:http://sourceware.org/libffi/>.
|
6
6
|
|
7
7
|
|
@@ -43,51 +43,79 @@ Libffi has been ported to many different platforms.
|
|
43
43
|
For specific configuration details and testing status, please
|
44
44
|
refer to the wiki page here:
|
45
45
|
|
46
|
-
http://www.moxielogic.org/wiki/index.php?title=Libffi_3.
|
46
|
+
http://www.moxielogic.org/wiki/index.php?title=Libffi_3.2
|
47
47
|
|
48
48
|
At the time of release, the following basic configurations have been
|
49
49
|
tested:
|
50
50
|
|
51
|
-
|
52
|
-
| Architecture
|
53
|
-
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
51
|
+
|-----------------+------------------+-------------------------|
|
52
|
+
| Architecture | Operating System | Compiler |
|
53
|
+
|-----------------+------------------+-------------------------|
|
54
|
+
| AArch64 (ARM64) | iOS | Clang |
|
55
|
+
| AArch64 | Linux | GCC |
|
56
|
+
| Alpha | Linux | GCC |
|
57
|
+
| Alpha | Tru64 | GCC |
|
58
|
+
| ARC | Linux | GCC |
|
59
|
+
| ARM | Linux | GCC |
|
60
|
+
| ARM | iOS | GCC |
|
61
|
+
| AVR32 | Linux | GCC |
|
62
|
+
| Blackfin | uClinux | GCC |
|
63
|
+
| HPPA | HPUX | GCC |
|
64
|
+
| IA-64 | Linux | GCC |
|
65
|
+
| M68K | FreeMiNT | GCC |
|
66
|
+
| M68K | Linux | GCC |
|
67
|
+
| M68K | RTEMS | GCC |
|
68
|
+
| M88K | OpenBSD/mvme88k | GCC |
|
69
|
+
| Meta | Linux | GCC |
|
70
|
+
| MicroBlaze | Linux | GCC |
|
71
|
+
| MIPS | IRIX | GCC |
|
72
|
+
| MIPS | Linux | GCC |
|
73
|
+
| MIPS | RTEMS | GCC |
|
74
|
+
| MIPS64 | Linux | GCC |
|
75
|
+
| Moxie | Bare metal | GCC |
|
76
|
+
| Nios II | Linux | GCC |
|
77
|
+
| OpenRISC | Linux | GCC |
|
78
|
+
| PowerPC 32-bit | AIX | IBM XL C |
|
79
|
+
| PowerPC 64-bit | AIX | IBM XL C |
|
80
|
+
| PowerPC | AMIGA | GCC |
|
81
|
+
| PowerPC | Linux | GCC |
|
82
|
+
| PowerPC | Mac OSX | GCC |
|
83
|
+
| PowerPC | FreeBSD | GCC |
|
84
|
+
| PowerPC 64-bit | FreeBSD | GCC |
|
85
|
+
| PowerPC 64-bit | Linux ELFv1 | GCC |
|
86
|
+
| PowerPC 64-bit | Linux ELFv2 | GCC |
|
87
|
+
| S390 | Linux | GCC |
|
88
|
+
| S390X | Linux | GCC |
|
89
|
+
| SPARC | Linux | GCC |
|
90
|
+
| SPARC | Solaris | GCC |
|
91
|
+
| SPARC | Solaris | Oracle Solaris Studio C |
|
92
|
+
| SPARC64 | Linux | GCC |
|
93
|
+
| SPARC64 | FreeBSD | GCC |
|
94
|
+
| SPARC64 | Solaris | Oracle Solaris Studio C |
|
95
|
+
| TILE-Gx/TILEPro | Linux | GCC |
|
96
|
+
| VAX | OpenBSD/vax | GCC |
|
97
|
+
| X86 | FreeBSD | GCC |
|
98
|
+
| X86 | GNU HURD | GCC |
|
99
|
+
| X86 | Interix | GCC |
|
100
|
+
| X86 | kFreeBSD | GCC |
|
101
|
+
| X86 | Linux | GCC |
|
102
|
+
| X86 | Mac OSX | GCC |
|
103
|
+
| X86 | OpenBSD | GCC |
|
104
|
+
| X86 | OS/2 | GCC |
|
105
|
+
| X86 | Solaris | GCC |
|
106
|
+
| X86 | Solaris | Oracle Solaris Studio C |
|
107
|
+
| X86 | Windows/Cygwin | GCC |
|
108
|
+
| X86 | Windows/MingW | GCC |
|
109
|
+
| X86-64 | FreeBSD | GCC |
|
110
|
+
| X86-64 | Linux | GCC |
|
111
|
+
| X86-64 | Linux/x32 | GCC |
|
112
|
+
| X86-64 | OpenBSD | GCC |
|
113
|
+
| X86-64 | Solaris | Oracle Solaris Studio C |
|
114
|
+
| X86-64 | Windows/Cygwin | GCC |
|
115
|
+
| X86-64 | Windows/MingW | GCC |
|
116
|
+
| X86-64 | Mac OSX | GCC |
|
117
|
+
| Xtensa | Linux | GCC |
|
118
|
+
|-----------------+------------------+-------------------------|
|
91
119
|
|
92
120
|
Please send additional platform test results to
|
93
121
|
libffi-discuss@sourceware.org and feel free to update the wiki page
|
@@ -101,6 +129,9 @@ system. Go to the directory you wish to build libffi in and run the
|
|
101
129
|
"configure" program found in the root directory of the libffi source
|
102
130
|
distribution.
|
103
131
|
|
132
|
+
If you're building libffi directly from version control, configure won't
|
133
|
+
exist yet; run ./autogen.sh first.
|
134
|
+
|
104
135
|
You may want to tell configure where to install the libffi library and
|
105
136
|
header files. To do that, use the --prefix configure switch. Libffi
|
106
137
|
will install under /usr/local by default.
|
@@ -114,24 +145,35 @@ will add some extra code which will suppress certain warnings when you
|
|
114
145
|
are using Purify with libffi. Only use this switch when using
|
115
146
|
Purify, as it will slow down the library.
|
116
147
|
|
148
|
+
If you don't want to build documentation, use the --disable-docs
|
149
|
+
configure switch.
|
150
|
+
|
117
151
|
It's also possible to build libffi on Windows platforms with
|
118
152
|
Microsoft's Visual C++ compiler. In this case, use the msvcc.sh
|
119
153
|
wrapper script during configuration like so:
|
120
154
|
|
121
|
-
path/to/configure CC=path/to/msvcc.sh LD=link CPP
|
155
|
+
path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP="cl -nologo -EP"
|
156
|
+
|
157
|
+
For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64" and
|
158
|
+
CXX="path/to/msvcc.sh -m64". You may also need to specify --build
|
159
|
+
appropriately.
|
160
|
+
|
161
|
+
It is also possible to build libffi on Windows platforms with the LLVM
|
162
|
+
project's clang-cl compiler, like below:
|
163
|
+
|
164
|
+
path/to/configure CC="path/to/msvcc.sh -clang-cl" CXX="path/to/msvcc.sh -clang-cl" LD=link CPP="clang-cl -EP"
|
122
165
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
present in MingW, and is not required when using MingW-style paths.)
|
166
|
+
When building with MSVC under a MingW environment, you may need to
|
167
|
+
remove the line in configure that sets 'fix_srcfile_path' to a 'cygpath'
|
168
|
+
command. ('cygpath' is not present in MingW, and is not required when
|
169
|
+
using MingW-style paths.)
|
128
170
|
|
129
|
-
For iOS builds,
|
171
|
+
For iOS builds, the 'libffi.xcodeproj' Xcode project is available.
|
130
172
|
|
131
173
|
Configure has many other options. Use "configure --help" to see them all.
|
132
174
|
|
133
175
|
Once configure has finished, type "make". Note that you must be using
|
134
|
-
GNU make. You can ftp GNU make from
|
176
|
+
GNU make. You can ftp GNU make from ftp.gnu.org:/pub/gnu/make .
|
135
177
|
|
136
178
|
To ensure that libffi is working as advertised, type "make check".
|
137
179
|
This will require that you have DejaGNU installed.
|
@@ -142,7 +184,67 @@ To install the library and header files, type "make install".
|
|
142
184
|
History
|
143
185
|
=======
|
144
186
|
|
145
|
-
See the
|
187
|
+
See the git log for details at http://github.com/libffi/libffi.
|
188
|
+
|
189
|
+
4.0 TBD
|
190
|
+
New API in support of GO closures.
|
191
|
+
|
192
|
+
3.2.1 Nov-12-14
|
193
|
+
Build fix for non-iOS AArch64 targets.
|
194
|
+
|
195
|
+
3.2 Nov-11-14
|
196
|
+
Add C99 Complex Type support (currently only supported on
|
197
|
+
s390).
|
198
|
+
Add support for PASCAL and REGISTER calling conventions on x86
|
199
|
+
Windows/Linux.
|
200
|
+
Add OpenRISC and Cygwin-64 support.
|
201
|
+
Bug fixes.
|
202
|
+
|
203
|
+
3.1 May-19-14
|
204
|
+
Add AArch64 (ARM64) iOS support.
|
205
|
+
Add Nios II support.
|
206
|
+
Add m88k and DEC VAX support.
|
207
|
+
Add support for stdcall, thiscall, and fastcall on non-Windows
|
208
|
+
32-bit x86 targets such as Linux.
|
209
|
+
Various Android, MIPS N32, x86, FreeBSD and UltraSPARC IIi
|
210
|
+
fixes.
|
211
|
+
Make the testsuite more robust: eliminate several spurious
|
212
|
+
failures, and respect the $CC and $CXX environment variables.
|
213
|
+
Archive off the manually maintained ChangeLog in favor of git
|
214
|
+
log.
|
215
|
+
|
216
|
+
3.0.13 Mar-17-13
|
217
|
+
Add Meta support.
|
218
|
+
Add missing Moxie bits.
|
219
|
+
Fix stack alignment bug on 32-bit x86.
|
220
|
+
Build fix for m68000 targets.
|
221
|
+
Build fix for soft-float Power targets.
|
222
|
+
Fix the install dir location for some platforms when building
|
223
|
+
with GCC (OS X, Solaris).
|
224
|
+
Fix Cygwin regression.
|
225
|
+
|
226
|
+
3.0.12 Feb-11-13
|
227
|
+
Add Moxie support.
|
228
|
+
Add AArch64 support.
|
229
|
+
Add Blackfin support.
|
230
|
+
Add TILE-Gx/TILEPro support.
|
231
|
+
Add MicroBlaze support.
|
232
|
+
Add Xtensa support.
|
233
|
+
Add support for PaX enabled kernels with MPROTECT.
|
234
|
+
Add support for native vendor compilers on
|
235
|
+
Solaris and AIX.
|
236
|
+
Work around LLVM/GCC interoperability issue on x86_64.
|
237
|
+
|
238
|
+
3.0.11 Apr-11-12
|
239
|
+
Lots of build fixes.
|
240
|
+
Add support for variadic functions (ffi_prep_cif_var).
|
241
|
+
Add Linux/x32 support.
|
242
|
+
Add thiscall, fastcall and MSVC cdecl support on Windows.
|
243
|
+
Add Amiga and newer MacOS support.
|
244
|
+
Add m68k FreeMiNT support.
|
245
|
+
Integration with iOS' xcode build tools.
|
246
|
+
Fix Octeon and MC68881 support.
|
247
|
+
Fix code pessimizations.
|
146
248
|
|
147
249
|
3.0.10 Aug-23-11
|
148
250
|
Add support for Apple's iOS.
|
@@ -286,7 +388,7 @@ See the ChangeLog files for details.
|
|
286
388
|
Authors & Credits
|
287
389
|
=================
|
288
390
|
|
289
|
-
libffi was originally written by Anthony Green <green@
|
391
|
+
libffi was originally written by Anthony Green <green@moxielogic.com>.
|
290
392
|
|
291
393
|
The developers of the GNU Compiler Collection project have made
|
292
394
|
innumerable valuable contributions. See the ChangeLog file for
|
@@ -301,15 +403,22 @@ Thorup.
|
|
301
403
|
Major processor architecture ports were contributed by the following
|
302
404
|
developers:
|
303
405
|
|
406
|
+
aarch64 Marcus Shawcroft, James Greenhalgh
|
304
407
|
alpha Richard Henderson
|
305
408
|
arm Raffaele Sena
|
409
|
+
blackfin Alexandre Keunecke I. de Mendonca
|
306
410
|
cris Simon Posnjak, Hans-Peter Nilsson
|
307
411
|
frv Anthony Green
|
308
412
|
ia64 Hans Boehm
|
309
413
|
m32r Kazuhiro Inaoka
|
310
414
|
m68k Andreas Schwab
|
415
|
+
m88k Miod Vallat
|
416
|
+
microblaze Nathan Rossi
|
311
417
|
mips Anthony Green, Casey Marshall
|
312
418
|
mips64 David Daney
|
419
|
+
moxie Anthony Green
|
420
|
+
nios ii Sandra Loosemore
|
421
|
+
openrisc Sebastian Macke
|
313
422
|
pa Randolph Chung, Dave Anglin, Andreas Tobler
|
314
423
|
powerpc Geoffrey Keating, Andreas Tobler,
|
315
424
|
David Edelsohn, John Hornkvist
|
@@ -318,8 +427,11 @@ s390 Gerhard Tonn, Ulrich Weigand
|
|
318
427
|
sh Kaz Kojima
|
319
428
|
sh64 Kaz Kojima
|
320
429
|
sparc Anthony Green, Gordon Irlam
|
430
|
+
tile-gx/tilepro Walter Lee
|
431
|
+
vax Miod Vallat
|
321
432
|
x86 Anthony Green, Jon Beniston
|
322
433
|
x86-64 Bo Thorsen
|
434
|
+
xtensa Chris Zankel
|
323
435
|
|
324
436
|
Jesper Skov and Andrew Haley both did more than their fair share of
|
325
437
|
stepping through the code and tracking down bugs.
|