ffi 1.0.11 → 1.0.12.pre

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.

Files changed (159) hide show
  1. data/Rakefile +1 -1
  2. data/ext/ffi_c/AbstractMemory.c +9 -0
  3. data/ext/ffi_c/AbstractMemory.h +4 -0
  4. data/ext/ffi_c/Buffer.c +8 -0
  5. data/ext/ffi_c/Call.c +8 -0
  6. data/ext/ffi_c/ClosurePool.c +12 -0
  7. data/ext/ffi_c/DynamicLibrary.c +7 -1
  8. data/ext/ffi_c/Function.c +11 -1
  9. data/ext/ffi_c/Function.h +6 -0
  10. data/ext/ffi_c/FunctionInfo.c +8 -0
  11. data/ext/ffi_c/LastError.c +8 -0
  12. data/ext/ffi_c/MemoryPointer.c +8 -0
  13. data/ext/ffi_c/MemoryPointer.h +6 -0
  14. data/ext/ffi_c/MethodHandle.c +8 -0
  15. data/ext/ffi_c/Platform.c +8 -0
  16. data/ext/ffi_c/Pointer.c +8 -0
  17. data/ext/ffi_c/Pointer.h +6 -0
  18. data/ext/ffi_c/Struct.c +6 -0
  19. data/ext/ffi_c/StructByReference.c +8 -0
  20. data/ext/ffi_c/StructByValue.c +8 -0
  21. data/ext/ffi_c/StructLayout.c +6 -0
  22. data/ext/ffi_c/Thread.c +7 -0
  23. data/ext/ffi_c/Thread.h +6 -0
  24. data/ext/ffi_c/Type.c +3 -0
  25. data/ext/ffi_c/Types.h +4 -0
  26. data/ext/ffi_c/Variadic.c +8 -0
  27. data/ext/ffi_c/endian.h +3 -0
  28. data/ext/ffi_c/extconf.rb +6 -1
  29. data/ext/ffi_c/libffi.vc.mk +26 -0
  30. data/ext/ffi_c/libffi.vc64.mk +26 -0
  31. data/ext/ffi_c/libffi/ChangeLog +541 -0
  32. data/ext/ffi_c/libffi/ChangeLog.libffi +13 -87
  33. data/ext/ffi_c/libffi/LICENSE +3 -3
  34. data/ext/ffi_c/libffi/Makefile.am +41 -32
  35. data/ext/ffi_c/libffi/Makefile.in +95 -66
  36. data/ext/ffi_c/libffi/Makefile.vc +141 -0
  37. data/ext/ffi_c/libffi/Makefile.vc64 +141 -0
  38. data/ext/ffi_c/libffi/README +40 -4
  39. data/ext/ffi_c/libffi/aclocal.m4 +729 -7854
  40. data/ext/ffi_c/libffi/build-ios.sh +67 -0
  41. data/ext/ffi_c/libffi/compile +11 -10
  42. data/ext/ffi_c/libffi/config.guess +4 -1
  43. data/ext/ffi_c/libffi/config.sub +6 -3
  44. data/ext/ffi_c/libffi/configure +6264 -6354
  45. data/ext/ffi_c/libffi/configure.ac +155 -63
  46. data/ext/ffi_c/libffi/depcomp +81 -35
  47. data/ext/ffi_c/libffi/doc/libffi.info +78 -18
  48. data/ext/ffi_c/libffi/doc/libffi.texi +64 -5
  49. data/ext/ffi_c/libffi/doc/stamp-vti +4 -4
  50. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  51. data/ext/ffi_c/libffi/fficonfig.h.in +18 -0
  52. data/ext/ffi_c/libffi/fficonfig.hw +57 -0
  53. data/ext/ffi_c/libffi/include/Makefile.in +21 -3
  54. data/ext/ffi_c/libffi/include/ffi.h.in +42 -14
  55. data/ext/ffi_c/libffi/include/ffi.h.vc +427 -0
  56. data/ext/ffi_c/libffi/include/ffi.h.vc64 +427 -0
  57. data/ext/ffi_c/libffi/include/ffi_common.h +9 -5
  58. data/ext/ffi_c/libffi/install-sh +364 -167
  59. data/ext/ffi_c/libffi/ltmain.sh +2599 -1369
  60. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +176 -0
  61. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +195 -0
  62. data/ext/ffi_c/libffi/m4/ax_check_compiler_flags.m4 +76 -0
  63. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +63 -0
  64. data/ext/ffi_c/libffi/m4/ax_configure_args.m4 +70 -0
  65. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +300 -0
  66. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +215 -0
  67. data/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +79 -0
  68. data/ext/ffi_c/libffi/m4/libtool.m4 +1239 -768
  69. data/ext/ffi_c/libffi/m4/ltoptions.m4 +7 -6
  70. data/ext/ffi_c/libffi/m4/ltversion.m4 +6 -6
  71. data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +9 -3
  72. data/ext/ffi_c/libffi/man/Makefile.in +21 -3
  73. data/ext/ffi_c/libffi/mdate-sh +0 -0
  74. data/ext/ffi_c/libffi/missing +60 -44
  75. data/ext/ffi_c/libffi/msvcc.sh +197 -0
  76. data/ext/ffi_c/libffi/src/alpha/osf.S +39 -18
  77. data/ext/ffi_c/libffi/src/arm/ffi.c +443 -24
  78. data/ext/ffi_c/libffi/src/arm/ffitarget.h +17 -1
  79. data/ext/ffi_c/libffi/src/arm/gentramp.sh +118 -0
  80. data/ext/ffi_c/libffi/src/arm/sysv.S +206 -15
  81. data/ext/ffi_c/libffi/src/arm/trampoline.S +4450 -0
  82. data/ext/ffi_c/libffi/src/avr32/ffi.c +4 -2
  83. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +2 -2
  84. data/ext/ffi_c/libffi/src/closures.c +17 -35
  85. data/ext/ffi_c/libffi/src/cris/ffi.c +1 -1
  86. data/ext/ffi_c/libffi/src/cris/ffitarget.h +2 -2
  87. data/ext/ffi_c/libffi/src/dlmalloc.c +66 -4
  88. data/ext/ffi_c/libffi/src/frv/ffitarget.h +2 -6
  89. data/ext/ffi_c/libffi/src/ia64/ffi.c +7 -5
  90. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +2 -2
  91. data/ext/ffi_c/libffi/src/java_raw_api.c +1 -1
  92. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +2 -2
  93. data/ext/ffi_c/libffi/src/m68k/ffi.c +10 -0
  94. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +2 -2
  95. data/ext/ffi_c/libffi/src/m68k/sysv.S +36 -0
  96. data/ext/ffi_c/libffi/src/mips/ffi.c +12 -5
  97. data/ext/ffi_c/libffi/src/mips/ffitarget.h +18 -11
  98. data/ext/ffi_c/libffi/src/mips/n32.S +4 -4
  99. data/ext/ffi_c/libffi/src/moxie/eabi.S +128 -0
  100. data/ext/ffi_c/libffi/src/moxie/ffi.c +276 -0
  101. data/ext/ffi_c/libffi/src/pa/ffi.c +7 -4
  102. data/ext/ffi_c/libffi/src/pa/ffitarget.h +6 -5
  103. data/ext/ffi_c/libffi/src/powerpc/aix.S +5 -1
  104. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +2 -0
  105. data/ext/ffi_c/libffi/src/powerpc/asm.h +1 -1
  106. data/ext/ffi_c/libffi/src/powerpc/darwin.S +215 -77
  107. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +358 -100
  108. data/ext/ffi_c/libffi/src/powerpc/ffi.c +11 -5
  109. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +603 -172
  110. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +17 -4
  111. data/ext/ffi_c/libffi/src/prep_cif.c +16 -13
  112. data/ext/ffi_c/libffi/src/s390/ffitarget.h +4 -2
  113. data/ext/ffi_c/libffi/src/sh/ffitarget.h +2 -2
  114. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +2 -2
  115. data/ext/ffi_c/libffi/src/sparc/ffi.c +55 -11
  116. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +5 -3
  117. data/ext/ffi_c/libffi/src/x86/ffi.c +54 -92
  118. data/ext/ffi_c/libffi/src/x86/ffi64.c +17 -8
  119. data/ext/ffi_c/libffi/src/x86/ffitarget.h +15 -14
  120. data/ext/ffi_c/libffi/src/x86/sysv.S +40 -26
  121. data/ext/ffi_c/libffi/src/x86/unix64.S +4 -0
  122. data/ext/ffi_c/libffi/src/x86/win32.S +379 -191
  123. data/ext/ffi_c/libffi/src/x86/win64.S +15 -7
  124. data/ext/ffi_c/libffi/testsuite/Makefile.am +1 -1
  125. data/ext/ffi_c/libffi/testsuite/Makefile.in +22 -4
  126. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +350 -0
  127. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +1 -5
  128. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +1 -1
  129. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +1 -1
  130. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +1 -0
  131. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +1 -0
  132. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +3 -0
  133. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +2 -2
  134. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +3 -0
  135. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +1 -1
  136. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +1 -1
  137. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +1 -0
  138. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c +2 -3
  139. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +2 -1
  140. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +36 -0
  141. data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +17 -17
  142. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +1 -0
  143. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +1 -0
  144. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +1 -1
  145. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +1 -3
  146. data/ext/ffi_c/win32/stdint.h +199 -0
  147. data/gen/Rakefile +18 -2
  148. data/lib/ffi/platform/arm-linux/types.conf +102 -0
  149. data/lib/ffi/platform/i486-gnu/types.conf +107 -0
  150. data/lib/ffi/platform/ia64-linux/types.conf +102 -0
  151. data/lib/ffi/platform/mips-linux/types.conf +102 -0
  152. data/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  153. data/lib/ffi/platform/powerpc-linux/types.conf +100 -0
  154. data/lib/ffi/platform/s390-linux/types.conf +102 -0
  155. data/lib/ffi/platform/s390x-linux/types.conf +102 -0
  156. data/lib/ffi/platform/sparc-linux/types.conf +102 -0
  157. data/lib/ffi/tools/types_generator.rb +8 -1
  158. data/lib/ffi_c.bundle +0 -0
  159. metadata +72 -42
@@ -16,7 +16,10 @@
16
16
  * version 3 along with this work. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
18
 
19
+ #ifndef _MSC_VER
19
20
  #include <sys/param.h>
21
+ #endif
22
+
20
23
  #include <sys/types.h>
21
24
  #include <ruby.h>
22
25
  #include <ffi.h>
@@ -68,6 +68,10 @@ typedef enum {
68
68
  #include <ffi.h>
69
69
  #include "Type.h"
70
70
 
71
+ #ifndef FFI_STDCALL
72
+ #define FFI_STDCALL FFI_DEFAULT_ABI
73
+ #endif
74
+
71
75
  VALUE rbffi_NativeValue_ToRuby(Type* type, VALUE rbType, const void* ptr);
72
76
  void rbffi_Types_Init(VALUE moduleFFI);
73
77
 
@@ -17,12 +17,20 @@
17
17
  * version 3 along with this work. If not, see <http://www.gnu.org/licenses/>.
18
18
  */
19
19
 
20
+ #ifndef _MSC_VER
20
21
  #include <sys/param.h>
22
+ #endif
21
23
  #include <sys/types.h>
22
24
 
23
25
  #include <stdio.h>
26
+ #ifndef _MSC_VER
24
27
  #include <stdint.h>
25
28
  #include <stdbool.h>
29
+ #else
30
+ typedef int bool;
31
+ #define true 1
32
+ #define false 0
33
+ #endif
26
34
  #include <ruby.h>
27
35
 
28
36
  #include <ffi.h>
@@ -1,7 +1,10 @@
1
1
  #ifndef JFFI_ENDIAN_H
2
2
  #define JFFI_ENDIAN_H
3
3
 
4
+ #ifndef _MSC_VER
4
5
  #include <sys/param.h>
6
+ #endif
7
+
5
8
  #include <sys/types.h>
6
9
 
7
10
  #if defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) || defined(__GLIBC__)
@@ -30,9 +30,10 @@ if !defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby"
30
30
  create_header
31
31
 
32
32
  $CFLAGS << " -mwin32 " if RbConfig::CONFIG['host_os'] =~ /cygwin/
33
+ $LOCAL_LIBS << " ./libffi/.libs/libffi_convenience.lib" if RbConfig::CONFIG['host_os'] =~ /mswin/
33
34
  #$CFLAGS << " -Werror -Wunused -Wformat -Wimplicit -Wreturn-type "
34
35
  if (ENV['CC'] || RbConfig::MAKEFILE_CONFIG['CC']) =~ /gcc/
35
- $CFLAGS << " -Wno-declaration-after-statement "
36
+ # $CFLAGS << " -Wno-declaration-after-statement "
36
37
  end
37
38
 
38
39
  create_makefile("ffi_c")
@@ -43,6 +44,10 @@ if !defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby"
43
44
  mf.puts "include ${srcdir}/libffi.darwin.mk"
44
45
  elsif RbConfig::CONFIG['host_os'].downcase =~ /bsd/
45
46
  mf.puts '.include "${srcdir}/libffi.bsd.mk"'
47
+ elsif RbConfig::CONFIG['host_os'].downcase =~ /mswin64/
48
+ mf.puts '!include $(srcdir)/libffi.vc64.mk'
49
+ elsif RbConfig::CONFIG['host_os'].downcase =~ /mswin32/
50
+ mf.puts '!include $(srcdir)/libffi.vc.mk'
46
51
  else
47
52
  mf.puts "include ${srcdir}/libffi.mk"
48
53
  end
@@ -0,0 +1,26 @@
1
+ # -*- makefile -*-
2
+ #
3
+ # Makefile for msvc
4
+ #
5
+
6
+ # Tack the extra deps onto the autogenerated variables
7
+ INCFLAGS = $(INCFLAGS) -I$(LIBFFI_BUILD_DIR)/include -I$(LIBFFI_BUILD_DIR)/src/x86
8
+ LOCAL_LIBS = $(LOCAL_LIBS) $(LIBFFI)
9
+ BUILD_DIR = $(MAKEDIR)
10
+ LIBFFI_BUILD_DIR = $(BUILD_DIR)/libffi
11
+
12
+ !IF "$(srcdir)" == "."
13
+ LIBFFI_SRC_DIR = $(MAKEDIR)/libffi
14
+ !ELSE
15
+ LIBFFI_SRC_DIR = $(srcdir)/libffi
16
+ !ENDIF
17
+
18
+ LIBFFI = $(LIBFFI_BUILD_DIR)/.libs/libffi_convenience.lib
19
+
20
+ $(OBJS): $(LIBFFI)
21
+
22
+ $(LIBFFI):
23
+ @$(MAKEDIRS) $(LIBFFI_BUILD_DIR)
24
+ @cd $(LIBFFI_BUILD_DIR) && $(MAKE) -f Makefile.vc
25
+
26
+
@@ -0,0 +1,26 @@
1
+ # -*- makefile -*-
2
+ #
3
+ # Makefile for msvc
4
+ #
5
+
6
+ # Tack the extra deps onto the autogenerated variables
7
+ INCFLAGS = $(INCFLAGS) -I$(LIBFFI_BUILD_DIR)/include -I$(LIBFFI_BUILD_DIR)/src/x86
8
+ LOCAL_LIBS = $(LOCAL_LIBS) $(LIBFFI)
9
+ BUILD_DIR = $(MAKEDIR)
10
+ LIBFFI_BUILD_DIR = $(BUILD_DIR)/libffi
11
+
12
+ !IF "$(srcdir)" == "."
13
+ LIBFFI_SRC_DIR = $(MAKEDIR)/libffi
14
+ !ELSE
15
+ LIBFFI_SRC_DIR = $(srcdir)/libffi
16
+ !ENDIF
17
+
18
+ LIBFFI = $(LIBFFI_BUILD_DIR)/.libs/libffi_convenience.lib
19
+
20
+ $(OBJS): $(LIBFFI)
21
+
22
+ $(LIBFFI):
23
+ @$(MAKEDIRS) $(LIBFFI_BUILD_DIR)
24
+ @cd $(LIBFFI_BUILD_DIR) && $(MAKE) -f Makefile.vc64
25
+
26
+
@@ -1,3 +1,544 @@
1
+ 2011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
2
+
3
+ * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
4
+ * configure: Rebuilt.
5
+
6
+ 2011-07-11 Andrew Haley <aph@redhat.com>
7
+
8
+ * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
9
+
10
+ 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11
+
12
+ * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
13
+ * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
14
+
15
+ 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16
+
17
+ PR libffi/46660
18
+ * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
19
+ mips-sgi-irix6*.
20
+ * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
21
+
22
+ 2011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23
+
24
+ * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
25
+ PRId8 instead of %hhu, %hhd.
26
+ * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
27
+ PRIu8): Define.
28
+ [__sgi__] (PRId8, PRIu8): Define.
29
+
30
+ 2011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31
+
32
+ * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
33
+ Define.
34
+ Use them to handle ELF vs. ECOFF differences.
35
+ [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
36
+
37
+ 2011-03-30 Timothy Wall <twall@users.sf.net>
38
+
39
+ * src/powerpc/darwin.S: Fix unknown FDE encoding.
40
+ * src/powerpc/darwin_closure.S: ditto.
41
+
42
+ 2011-02-25 Anthony Green <green@moxielogic.com>
43
+
44
+ * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
45
+ 32-bit ABIs.
46
+
47
+ 2011-02-15 Anthony Green <green@moxielogic.com>
48
+
49
+ * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
50
+ * configure: Rebuilt.
51
+
52
+ 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
53
+
54
+ * configure: Regenerate.
55
+
56
+ 2011-02-13 Anthony Green <green@moxielogic.com>
57
+
58
+ * include/ffi_common.h (UNLIKELY, LIKELY): Define.
59
+ * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
60
+ * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
61
+
62
+ * src/prep_cif.c (initialize_aggregate): Convert assertion into
63
+ FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
64
+
65
+ * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
66
+ just return FFI_BAD_ABI when things are wrong.
67
+ * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
68
+ * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
69
+ * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
70
+ * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
71
+ * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
72
+
73
+ 2011-02-11 Anthony Green <green@moxielogic.com>
74
+
75
+ * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
76
+ just return FFI_BAD_ABI when things are wrong.
77
+
78
+ 2011-02-09 Stuart Shelton <srcshelton@gmail.com>
79
+
80
+ http://bugs.gentoo.org/show_bug.cgi?id=286911
81
+ * src/mips/ffitarget.h: Clean up error messages.
82
+ * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
83
+ ffi_raw*.
84
+ * include/ffi.h.in: Add pragma for SGI compiler.
85
+
86
+ 2011-02-09 Anthony Green <green@moxielogic.com>
87
+
88
+ * configure.ac: Add powerpc64-*-darwin* support.
89
+
90
+ 2011-02-09 Anthony Green <green@moxielogic.com>
91
+
92
+ * README: Mention Interix.
93
+
94
+ 2011-02-09 Jonathan Callen <abcd@gentoo.org>
95
+
96
+ * configure.ac: Add Interix to win32/cygwin/mingw case.
97
+ * configure: Ditto.
98
+ * src/closures.c: Treat Interix like Cygwin, instead of as a
99
+ generic win32.
100
+
101
+ 2011-02-09 Anthony Green <green@moxielogic.com>
102
+
103
+ * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
104
+ * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
105
+ * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
106
+ (ffi_prep_closure_loc): Check for bad ABI.
107
+ * src/prep_cif.c (UNLIKELY, LIKELY): Define.
108
+ (initialize_aggregate): Check for bad types.
109
+
110
+ 2011-02-09 Landon Fuller <landonf@plausible.coop>
111
+
112
+ * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
113
+ src/arm/trampoline.S.
114
+ (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
115
+ * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
116
+ * src/arm/ffi.c (ffi_trampoline_table)
117
+ (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
118
+ (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
119
+ (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
120
+ (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
121
+ Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
122
+ (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
123
+ separately.
124
+ * src/arm/sysv.S: Handle Apple iOS host.
125
+ * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
126
+ * build-ios.sh: New file.
127
+ * fficonfig.h.in, configure, Makefile.in: Rebuilt.
128
+ * README: Mention ARM iOS.
129
+
130
+ 2011-02-08 Oren Held <orenhe@il.ibm.com>
131
+
132
+ * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
133
+ redefinition of mallinfo on HP-UX.
134
+
135
+ 2011-02-08 Ginn Chen <ginn.chen@oracle.com>
136
+
137
+ * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
138
+ aggregate return ABI. Flush cache.
139
+ (ffi_prep_closure_loc): Flush cache.
140
+
141
+ 2011-02-11 Anthony Green <green@moxielogic.com>
142
+
143
+ From Tom Honermann <tom.honermann@oracle.com>:
144
+ * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
145
+ AIX. Declare .ffi_prep_args. Insert nops after branch
146
+ instructions so that the AIX linker can insert TOC reload
147
+ instructions.
148
+ * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
149
+
150
+ 2011-02-08 Ed <ed@kdtc.net>
151
+
152
+ * src/powerpc/asm.h: Fix grammar nit in comment.
153
+
154
+ 2011-02-08 Uli Link <ul.mcamafia@linkitup.de>
155
+
156
+ * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
157
+
158
+ 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
159
+
160
+ PR libffi/46661
161
+ * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
162
+ uintptr_t first.
163
+ * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
164
+
165
+ 2011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
166
+
167
+ * configure.ac: Fix x86 test for pc related relocs.
168
+ * configure: Rebuilt.
169
+
170
+ 2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
171
+
172
+ * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
173
+ Handle case when CPU variant does not have long double support.
174
+ * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
175
+ and cores with soft floating point.
176
+
177
+ 2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
178
+
179
+ * configure.ac: Add mips*-*-rtems* support.
180
+ * configure: Regenerate.
181
+ * src/mips/ffitarget.h: Ensure needed constants are available
182
+ for targets which do not have sgidefs.h.
183
+
184
+ 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
185
+
186
+ PR target/40125
187
+ * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
188
+ * configure: Regenerate.
189
+
190
+ 2010-12-18 Iain Sandoe <iains@gcc.gnu.org>
191
+
192
+ PR libffi/29152
193
+ PR libffi/42378
194
+ * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
195
+ update comments.
196
+ * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
197
+ (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
198
+ * src/powerpc/darwin.S: Provide Darwin64 implementation,
199
+ update comments.
200
+ * src/powerpc/ffi_darwin.c: Likewise.
201
+
202
+ 2010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
203
+
204
+ * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
205
+ backslashes.
206
+ (libffi_cv_as_string_pseudo_op): Likewise.
207
+ * configure: Regenerate.
208
+
209
+ 2010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
210
+
211
+ * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
212
+ (ffi_closure_VFP): Same.
213
+ (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
214
+ directive.
215
+
216
+ 2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
217
+
218
+ * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
219
+ (PRIuPTR): Define.
220
+
221
+ 2010-11-29 Richard Henderson <rth@redhat.com>
222
+ Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
223
+
224
+ * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
225
+ (.eh_frame): Use FDE_ENCODING.
226
+ (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
227
+
228
+ 2010-11-22 Jacek Caban <jacek@codeweavers.com>
229
+
230
+ * configure.ac: Check for symbol underscores on mingw-w64.
231
+ * configure: Rebuilt.
232
+ * src/x86/win64.S: Correctly access extern symbols in respect to
233
+ underscores.
234
+
235
+ 2010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
236
+
237
+ * testsuite/lib/libffi-dg.exp: Rename ...
238
+ * testsuite/lib/libffi.exp: ... to this.
239
+ * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
240
+ * libffi/testsuite/libffi.special/special.exp: Likewise.
241
+
242
+ 2010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
243
+
244
+ * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
245
+ code, new parameter, and return value. Update comments.
246
+ (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
247
+ call to layout_vfp_args().
248
+ (ffi_call_SYSV): Update declaration.
249
+ (ffi_call_VFP): New declaration.
250
+ (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
251
+ when ABI is FFI_VFP.
252
+ (ffi_closure_VFP): New declaration.
253
+ (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
254
+ ffi_prep_incoming_args_SYSV().
255
+ (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
256
+ case handling.
257
+ (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
258
+ construction under VFP hard-float.
259
+ (rec_vfp_type_p): New function.
260
+ (vfp_type_p): Same.
261
+ (place_vfp_arg): Same.
262
+ (layout_vfp_args): Same.
263
+ * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
264
+ based on __ARM_PCS_VFP.
265
+ (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
266
+ fields.
267
+ (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
268
+ (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
269
+ * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
270
+ direct call. Move function pointer load upwards.
271
+ (ffi_call_VFP): New function.
272
+ (ffi_closure_VFP): Same.
273
+
274
+ * testsuite/lib/libffi-dg.exp (check-flags): New function.
275
+ (dg-skip-if): New function.
276
+ * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
277
+ and compiler options include -mfloat-abi=hard.
278
+ * testsuite/libffi.call/cls_longdouble_va.c: Same.
279
+
280
+ 2010-10-01 Jakub Jelinek <jakub@redhat.com>
281
+
282
+ PR libffi/45677
283
+ * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
284
+ a multiple of 8.
285
+ * testsuite/libffi.call/many2.c: New test.
286
+
287
+ 2010-08-20 Mark Wielaard <mjw@redhat.com>
288
+
289
+ * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
290
+ returns NULL.
291
+
292
+ 2010-08-09 Andreas Tobler <andreast@fgznet.ch>
293
+
294
+ * configure.ac: Add target powerpc64-*-freebsd*.
295
+ * configure: Regenerate.
296
+ * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
297
+ -mlong-double-128 only to linux targets.
298
+ * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
299
+ * testsuite/libffi.call/cls_longdouble.c: Likewise.
300
+ * testsuite/libffi.call/huge_struct.c: Likewise.
301
+
302
+ 2010-08-05 Dan Witte <dwitte@mozilla.com>
303
+
304
+ * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
305
+ debug CRT when --enable-debug is given.
306
+ * configure.ac: Define it.
307
+ * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
308
+
309
+ 2010-08-04 Dan Witte <dwitte@mozilla.com>
310
+
311
+ * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
312
+ platforms.
313
+ * src/x86/ffi.c: Remove redundant ifdef checks.
314
+ * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
315
+ for X86_ANY so return value space doesn't get added twice.
316
+
317
+ 2010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
318
+
319
+ * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
320
+
321
+ 2010-07-22 Dan Witte <dwitte@mozilla.com>
322
+
323
+ * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
324
+ * src/prep_cif.c: Fix ABI assertion.
325
+ * src/cris/ffi.c: Ditto.
326
+
327
+ 2010-07-10 Evan Phoenix <evan@fallingsnow.net>
328
+
329
+ * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
330
+
331
+ 2010-07-07 Dan Horák <dan@danny.cz>
332
+
333
+ * include/ffi.h.in: Protect #define with #ifndef.
334
+ * src/powerpc/ffitarget.h: Ditto.
335
+ * src/s390/ffitarget.h: Ditto.
336
+ * src/sparc/ffitarget.h: Ditto.
337
+
338
+ 2010-07-07 Neil Roberts <neil@linux.intel.com>
339
+
340
+ * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
341
+ 16-bytes.
342
+
343
+ 2010-07-02 Jakub Jelinek <jakub@redhat.com>
344
+
345
+ * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
346
+ * Makefile.in: Regenerated.
347
+
348
+ 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
349
+
350
+ * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
351
+ output, too.
352
+ (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
353
+ (libffi_cv_as_string_pseudo_op): Check for .string.
354
+ * configure: Regenerate.
355
+ * fficonfig.h.in: Regenerate.
356
+ * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
357
+
358
+ 2010-05-11 Dan Witte <dwitte@mozilla.com>
359
+
360
+ * doc/libffi.tex: Document previous change.
361
+
362
+ 2010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
363
+
364
+ * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
365
+
366
+ 2010-05-05 Michael Kohler <michaelkohler@live.com>
367
+
368
+ * src/dlmalloc.c (dlfree): Fix spelling.
369
+ * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
370
+ * configure.ac: Ditto.
371
+ * configure: Rebuilt.
372
+
373
+ 2010-04-13 Dan Witte <dwitte@mozilla.com>
374
+
375
+ * msvcc.sh: Build with -W3 instead of -Wall.
376
+ * src/powerpc/ffi_darwin.c: Remove build warnings.
377
+ * src/x86/ffi.c: Ditto.
378
+ * src/x86/ffitarget.h: Ditto.
379
+
380
+ 2010-04-12 Dan Witte <dwitte@mozilla.com>
381
+ Walter Meinl <wuno@lsvw.de>
382
+
383
+ * configure.ac: Add OS/2 support.
384
+ * configure: Rebuilt.
385
+ * src/closures.c: Ditto.
386
+ * src/dlmalloc.c: Ditto.
387
+ * src/x86/win32.S: Ditto.
388
+
389
+ 2010-04-07 Jakub Jelinek <jakub@redhat.com>
390
+
391
+ * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
392
+
393
+ 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
394
+
395
+ * Makefile.in: Regenerate.
396
+ * aclocal.m4: Regenerate.
397
+ * include/Makefile.in: Regenerate.
398
+ * man/Makefile.in: Regenerate.
399
+ * testsuite/Makefile.in: Regenerate.
400
+
401
+ 2010-03-30 Dan Witte <dwitte@mozilla.com>
402
+
403
+ * msvcc.sh: Disable build warnings.
404
+ * README (tested): Clarify windows build procedure.
405
+
406
+ 2010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
407
+
408
+ * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
409
+ * configure: Regenerate.
410
+ * fficonfig.h.in: Regenerate.
411
+ * libffi/src/x86/unix64.S (.eh_frame)
412
+ [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
413
+
414
+ 2010-03-14 Matthias Klose <doko@ubuntu.com>
415
+
416
+ * src/x86/ffi64.c: Fix typo in comment.
417
+ * src/x86/ffi.c: Use /* ... */ comment style.
418
+
419
+ 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
420
+
421
+ * doc/libffi.texi (The Closure API): Fix typo.
422
+ * doc/libffi.info: Remove.
423
+
424
+ 2010-02-15 Matthias Klose <doko@ubuntu.com>
425
+
426
+ * src/arm/sysv.S (__ARM_ARCH__): Define for processor
427
+ __ARM_ARCH_7EM__.
428
+
429
+ 2010-01-15 Anthony Green <green@redhat.com>
430
+
431
+ * README: Add notes on building with Microsoft Visual C++.
432
+
433
+ 2010-01-15 Daniel Witte <dwitte@mozilla.com>
434
+
435
+ * msvcc.sh: New file.
436
+
437
+ * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
438
+ * src/x86/ffi.c: Tweak function declaration and remove excess
439
+ parens.
440
+ * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
441
+ ffi_closure.
442
+
443
+ * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
444
+ function ffi_call_win32 on X86_WIN32.
445
+ * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
446
+ (ffi_call_STDCALL): Remove.
447
+
448
+ * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
449
+ to ffi_prep_cif_machdep for x86.
450
+ * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
451
+
452
+ 2010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
453
+
454
+ * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
455
+ Sun Studio compiler compatibility.
456
+
457
+ 2010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
458
+
459
+ * doc/libffi.texi: Add closure example.
460
+
461
+ 2010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
462
+
463
+ PR libffi/40701
464
+ * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
465
+ PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
466
+ * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
467
+ alpha*-dec-osf*.
468
+ * testsuite/libffi.call/cls_align_uint64.c: Likewise.
469
+ * testsuite/libffi.call/cls_ulonglong.c: Likewise.
470
+ * testsuite/libffi.call/return_ll1.c: Likewise.
471
+ * testsuite/libffi.call/stret_medium2.c: Likewise.
472
+ * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
473
+ MAP_FAILED to char *.
474
+
475
+ 2010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
476
+
477
+ * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
478
+
479
+ 2009-12-31 Anthony Green <green@redhat.com>
480
+
481
+ * README: Update for libffi 3.0.9.
482
+
483
+ 2009-12-27 Matthias Klose <doko@ubuntu.com>
484
+
485
+ * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
486
+ appropriate.
487
+ * configure: Rebuilt.
488
+
489
+ 2009-12-26 Anthony Green <green@redhat.com>
490
+
491
+ * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
492
+ avr32*-*-*.
493
+ * testsuite/libffi.call/cls_double_va.c: Ditto.
494
+
495
+ 2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
496
+
497
+ * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
498
+ and inttypes.h.
499
+ * testsuite/libffi.special/unwindtest.cc: Ditto.
500
+
501
+ 2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
502
+
503
+ * configure.ac: Add amd64-*-openbsd*.
504
+ * configure: Rebuilt.
505
+ * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
506
+ openbsd programs with -lpthread.
507
+
508
+ 2009-12-26 Anthony Green <green@redhat.com>
509
+
510
+ * testsuite/libffi.call/cls_double_va.c,
511
+ testsuite/libffi.call/cls_longdouble.c,
512
+ testsuite/libffi.call/cls_longdouble_va.c,
513
+ testsuite/libffi.call/cls_pointer.c,
514
+ testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
515
+ mips*-*-* and arm*-*-*.
516
+ * testsuite/libffi.call/cls_align_longdouble_split.c,
517
+ testsuite/libffi.call/cls_align_longdouble_split2.c,
518
+ testsuite/libffi.call/stret_medium2.c,
519
+ testsuite/libffi.call/stret_medium.c,
520
+ testsuite/libffi.call/stret_large.c,
521
+ testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
522
+
523
+ 2009-12-31 Kay Tietz <ktietz70@googlemail.com>
524
+
525
+ * testsuite/libffi.call/ffitest.h,
526
+ testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
527
+ definitions.
528
+
529
+ 2009-12-31 Carlo Bramini <carlo.bramix@libero.it>
530
+
531
+ * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
532
+ * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
533
+ * configure: Rebuilt.
534
+ * Makefile.in: Rebuilt.
535
+
536
+ 2009-12-31 Anthony Green <green@redhat.com>
537
+ Blake Chaffin.
538
+
539
+ * testsuite/libffi.call/huge_struct.c: New test case from Blake
540
+ Chaffin @ Apple.
541
+
1
542
  2009-12-28 David Edelsohn <edelsohn@gnu.org>
2
543
 
3
544
  * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to