ffi 1.9.23 → 1.9.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +66 -0
  3. data/Rakefile +1 -1
  4. data/ext/ffi_c/Call.c +5 -2
  5. data/ext/ffi_c/Function.c +8 -5
  6. data/ext/ffi_c/Thread.c +1 -0
  7. data/ext/ffi_c/extconf.rb +1 -0
  8. data/ext/ffi_c/libffi/.appveyor.yml +6 -4
  9. data/ext/ffi_c/libffi/.github/issue_template.md +10 -0
  10. data/ext/ffi_c/libffi/.gitignore +2 -0
  11. data/ext/ffi_c/libffi/.travis.yml +20 -16
  12. data/ext/ffi_c/libffi/.travis/ar-lib +270 -0
  13. data/ext/ffi_c/libffi/.travis/build.sh +34 -0
  14. data/ext/ffi_c/libffi/.travis/compile +351 -0
  15. data/ext/ffi_c/libffi/.travis/install.sh +11 -3
  16. data/ext/ffi_c/libffi/.travis/moxie-sim.exp +60 -0
  17. data/ext/ffi_c/libffi/.travis/site.exp +18 -0
  18. data/ext/ffi_c/libffi/LICENSE-BUILDTOOLS +352 -0
  19. data/ext/ffi_c/libffi/Makefile.am +4 -45
  20. data/ext/ffi_c/libffi/{README → README.md} +237 -230
  21. data/ext/ffi_c/libffi/configure.ac +10 -8
  22. data/ext/ffi_c/libffi/configure.host +5 -0
  23. data/ext/ffi_c/libffi/include/ffi.h.in +48 -26
  24. data/ext/ffi_c/libffi/include/ffi_common.h +2 -0
  25. data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +18 -16
  26. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +21 -8
  27. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +4 -4
  28. data/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +9 -7
  29. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +8 -5
  30. data/ext/ffi_c/libffi/m4/ax_configure_args.m4 +5 -5
  31. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +7 -6
  32. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +99 -61
  33. data/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +18 -8
  34. data/ext/ffi_c/libffi/m4/ax_require_defined.m4 +37 -0
  35. data/ext/ffi_c/libffi/msvcc.sh +82 -14
  36. data/ext/ffi_c/libffi/src/aarch64/ffi.c +8 -31
  37. data/ext/ffi_c/libffi/src/closures.c +31 -1
  38. data/ext/ffi_c/libffi/src/ia64/ffi.c +24 -6
  39. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +2 -1
  40. data/ext/ffi_c/libffi/src/ia64/unix.S +6 -1
  41. data/ext/ffi_c/libffi/src/mips/ffi.c +29 -12
  42. data/ext/ffi_c/libffi/src/mips/ffitarget.h +7 -12
  43. data/ext/ffi_c/libffi/src/moxie/eabi.S +1 -1
  44. data/ext/ffi_c/libffi/src/moxie/ffi.c +18 -5
  45. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +45 -16
  46. data/ext/ffi_c/libffi/src/riscv/ffi.c +445 -0
  47. data/ext/ffi_c/libffi/src/riscv/ffitarget.h +68 -0
  48. data/ext/ffi_c/libffi/src/riscv/sysv.S +214 -0
  49. data/ext/ffi_c/libffi/src/types.c +3 -1
  50. data/ext/ffi_c/libffi/src/x86/ffi.c +18 -0
  51. data/ext/ffi_c/libffi/src/x86/ffi64.c +15 -9
  52. data/ext/ffi_c/libffi/src/x86/ffitarget.h +8 -2
  53. data/ext/ffi_c/libffi/src/x86/ffiw64.c +30 -9
  54. data/ext/ffi_c/libffi/src/xtensa/sysv.S +6 -1
  55. data/ext/ffi_c/libffi/testsuite/Makefile.am +108 -77
  56. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +195 -5
  57. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +28 -0
  58. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +78 -0
  59. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +50 -0
  60. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +58 -0
  61. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +1745 -0
  62. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +2885 -0
  63. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +743 -0
  64. data/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +46 -0
  65. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +14 -1
  66. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +3 -1
  67. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +1 -0
  68. data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +57 -0
  69. data/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest.cc +1 -1
  70. data/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest_ffi_call.cc +1 -1
  71. data/lib/ffi/library.rb +2 -4
  72. data/lib/ffi/platform/mips64-linux/types.conf +104 -0
  73. data/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  74. data/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  75. data/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  76. data/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  77. data/lib/ffi/version.rb +1 -1
  78. metadata +29 -3
@@ -0,0 +1,18 @@
1
+ # Copyright (C) 2008, 2010, 2018 Anthony Green
2
+
3
+ # Make sure we look in the right place for the board description files.
4
+ if ![info exists boards_dir] {
5
+ set boards_dir {}
6
+ }
7
+
8
+ lappend boards_dir $::env(TRAVIS_BUILD_DIR)/.travis
9
+
10
+ verbose "Global Config File: target_triplet is $target_triplet" 2
11
+ global target_list
12
+
13
+ case "$target_triplet" in {
14
+ { "moxie-elf" } {
15
+ set target_list "moxie-sim"
16
+ }
17
+ }
18
+
@@ -0,0 +1,352 @@
1
+ The libffi source distribution contains certain code that is not part
2
+ of libffi, and is only used as tooling to assist with the building and
3
+ testing of libffi. This includes the msvcc.sh script used to wrap the
4
+ Microsoft compiler with GNU compatible command-line options, and the
5
+ libffi test code distributed in the testsuite/libffi.bhaible
6
+ directory. This code is distributed with libffi for the purpose of
7
+ convenience only, and libffi is in no way derived from this code.
8
+
9
+ msvcc.sh an testsuite/libffi.bhaible are both distributed under the
10
+ terms of the GNU GPL version 2, as below.
11
+
12
+
13
+
14
+ GNU GENERAL PUBLIC LICENSE
15
+ Version 2, June 1991
16
+
17
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
18
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
+ Everyone is permitted to copy and distribute verbatim copies
20
+ of this license document, but changing it is not allowed.
21
+
22
+ Preamble
23
+
24
+ The licenses for most software are designed to take away your
25
+ freedom to share and change it. By contrast, the GNU General Public
26
+ License is intended to guarantee your freedom to share and change free
27
+ software--to make sure the software is free for all its users. This
28
+ General Public License applies to most of the Free Software
29
+ Foundation's software and to any other program whose authors commit to
30
+ using it. (Some other Free Software Foundation software is covered by
31
+ the GNU Lesser General Public License instead.) You can apply it to
32
+ your programs, too.
33
+
34
+ When we speak of free software, we are referring to freedom, not
35
+ price. Our General Public Licenses are designed to make sure that you
36
+ have the freedom to distribute copies of free software (and charge for
37
+ this service if you wish), that you receive source code or can get it
38
+ if you want it, that you can change the software or use pieces of it
39
+ in new free programs; and that you know you can do these things.
40
+
41
+ To protect your rights, we need to make restrictions that forbid
42
+ anyone to deny you these rights or to ask you to surrender the rights.
43
+ These restrictions translate to certain responsibilities for you if you
44
+ distribute copies of the software, or if you modify it.
45
+
46
+ For example, if you distribute copies of such a program, whether
47
+ gratis or for a fee, you must give the recipients all the rights that
48
+ you have. You must make sure that they, too, receive or can get the
49
+ source code. And you must show them these terms so they know their
50
+ rights.
51
+
52
+ We protect your rights with two steps: (1) copyright the software, and
53
+ (2) offer you this license which gives you legal permission to copy,
54
+ distribute and/or modify the software.
55
+
56
+ Also, for each author's protection and ours, we want to make certain
57
+ that everyone understands that there is no warranty for this free
58
+ software. If the software is modified by someone else and passed on, we
59
+ want its recipients to know that what they have is not the original, so
60
+ that any problems introduced by others will not reflect on the original
61
+ authors' reputations.
62
+
63
+ Finally, any free program is threatened constantly by software
64
+ patents. We wish to avoid the danger that redistributors of a free
65
+ program will individually obtain patent licenses, in effect making the
66
+ program proprietary. To prevent this, we have made it clear that any
67
+ patent must be licensed for everyone's free use or not licensed at all.
68
+
69
+ The precise terms and conditions for copying, distribution and
70
+ modification follow.
71
+
72
+ GNU GENERAL PUBLIC LICENSE
73
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
74
+
75
+ 0. This License applies to any program or other work which contains
76
+ a notice placed by the copyright holder saying it may be distributed
77
+ under the terms of this General Public License. The "Program", below,
78
+ refers to any such program or work, and a "work based on the Program"
79
+ means either the Program or any derivative work under copyright law:
80
+ that is to say, a work containing the Program or a portion of it,
81
+ either verbatim or with modifications and/or translated into another
82
+ language. (Hereinafter, translation is included without limitation in
83
+ the term "modification".) Each licensee is addressed as "you".
84
+
85
+ Activities other than copying, distribution and modification are not
86
+ covered by this License; they are outside its scope. The act of
87
+ running the Program is not restricted, and the output from the Program
88
+ is covered only if its contents constitute a work based on the
89
+ Program (independent of having been made by running the Program).
90
+ Whether that is true depends on what the Program does.
91
+
92
+ 1. You may copy and distribute verbatim copies of the Program's
93
+ source code as you receive it, in any medium, provided that you
94
+ conspicuously and appropriately publish on each copy an appropriate
95
+ copyright notice and disclaimer of warranty; keep intact all the
96
+ notices that refer to this License and to the absence of any warranty;
97
+ and give any other recipients of the Program a copy of this License
98
+ along with the Program.
99
+
100
+ You may charge a fee for the physical act of transferring a copy, and
101
+ you may at your option offer warranty protection in exchange for a fee.
102
+
103
+ 2. You may modify your copy or copies of the Program or any portion
104
+ of it, thus forming a work based on the Program, and copy and
105
+ distribute such modifications or work under the terms of Section 1
106
+ above, provided that you also meet all of these conditions:
107
+
108
+ a) You must cause the modified files to carry prominent notices
109
+ stating that you changed the files and the date of any change.
110
+
111
+ b) You must cause any work that you distribute or publish, that in
112
+ whole or in part contains or is derived from the Program or any
113
+ part thereof, to be licensed as a whole at no charge to all third
114
+ parties under the terms of this License.
115
+
116
+ c) If the modified program normally reads commands interactively
117
+ when run, you must cause it, when started running for such
118
+ interactive use in the most ordinary way, to print or display an
119
+ announcement including an appropriate copyright notice and a
120
+ notice that there is no warranty (or else, saying that you provide
121
+ a warranty) and that users may redistribute the program under
122
+ these conditions, and telling the user how to view a copy of this
123
+ License. (Exception: if the Program itself is interactive but
124
+ does not normally print such an announcement, your work based on
125
+ the Program is not required to print an announcement.)
126
+
127
+ These requirements apply to the modified work as a whole. If
128
+ identifiable sections of that work are not derived from the Program,
129
+ and can be reasonably considered independent and separate works in
130
+ themselves, then this License, and its terms, do not apply to those
131
+ sections when you distribute them as separate works. But when you
132
+ distribute the same sections as part of a whole which is a work based
133
+ on the Program, the distribution of the whole must be on the terms of
134
+ this License, whose permissions for other licensees extend to the
135
+ entire whole, and thus to each and every part regardless of who wrote it.
136
+
137
+ Thus, it is not the intent of this section to claim rights or contest
138
+ your rights to work written entirely by you; rather, the intent is to
139
+ exercise the right to control the distribution of derivative or
140
+ collective works based on the Program.
141
+
142
+ In addition, mere aggregation of another work not based on the Program
143
+ with the Program (or with a work based on the Program) on a volume of
144
+ a storage or distribution medium does not bring the other work under
145
+ the scope of this License.
146
+
147
+ 3. You may copy and distribute the Program (or a work based on it,
148
+ under Section 2) in object code or executable form under the terms of
149
+ Sections 1 and 2 above provided that you also do one of the following:
150
+
151
+ a) Accompany it with the complete corresponding machine-readable
152
+ source code, which must be distributed under the terms of Sections
153
+ 1 and 2 above on a medium customarily used for software interchange; or,
154
+
155
+ b) Accompany it with a written offer, valid for at least three
156
+ years, to give any third party, for a charge no more than your
157
+ cost of physically performing source distribution, a complete
158
+ machine-readable copy of the corresponding source code, to be
159
+ distributed under the terms of Sections 1 and 2 above on a medium
160
+ customarily used for software interchange; or,
161
+
162
+ c) Accompany it with the information you received as to the offer
163
+ to distribute corresponding source code. (This alternative is
164
+ allowed only for noncommercial distribution and only if you
165
+ received the program in object code or executable form with such
166
+ an offer, in accord with Subsection b above.)
167
+
168
+ The source code for a work means the preferred form of the work for
169
+ making modifications to it. For an executable work, complete source
170
+ code means all the source code for all modules it contains, plus any
171
+ associated interface definition files, plus the scripts used to
172
+ control compilation and installation of the executable. However, as a
173
+ special exception, the source code distributed need not include
174
+ anything that is normally distributed (in either source or binary
175
+ form) with the major components (compiler, kernel, and so on) of the
176
+ operating system on which the executable runs, unless that component
177
+ itself accompanies the executable.
178
+
179
+ If distribution of executable or object code is made by offering
180
+ access to copy from a designated place, then offering equivalent
181
+ access to copy the source code from the same place counts as
182
+ distribution of the source code, even though third parties are not
183
+ compelled to copy the source along with the object code.
184
+
185
+ 4. You may not copy, modify, sublicense, or distribute the Program
186
+ except as expressly provided under this License. Any attempt
187
+ otherwise to copy, modify, sublicense or distribute the Program is
188
+ void, and will automatically terminate your rights under this License.
189
+ However, parties who have received copies, or rights, from you under
190
+ this License will not have their licenses terminated so long as such
191
+ parties remain in full compliance.
192
+
193
+ 5. You are not required to accept this License, since you have not
194
+ signed it. However, nothing else grants you permission to modify or
195
+ distribute the Program or its derivative works. These actions are
196
+ prohibited by law if you do not accept this License. Therefore, by
197
+ modifying or distributing the Program (or any work based on the
198
+ Program), you indicate your acceptance of this License to do so, and
199
+ all its terms and conditions for copying, distributing or modifying
200
+ the Program or works based on it.
201
+
202
+ 6. Each time you redistribute the Program (or any work based on the
203
+ Program), the recipient automatically receives a license from the
204
+ original licensor to copy, distribute or modify the Program subject to
205
+ these terms and conditions. You may not impose any further
206
+ restrictions on the recipients' exercise of the rights granted herein.
207
+ You are not responsible for enforcing compliance by third parties to
208
+ this License.
209
+
210
+ 7. If, as a consequence of a court judgment or allegation of patent
211
+ infringement or for any other reason (not limited to patent issues),
212
+ conditions are imposed on you (whether by court order, agreement or
213
+ otherwise) that contradict the conditions of this License, they do not
214
+ excuse you from the conditions of this License. If you cannot
215
+ distribute so as to satisfy simultaneously your obligations under this
216
+ License and any other pertinent obligations, then as a consequence you
217
+ may not distribute the Program at all. For example, if a patent
218
+ license would not permit royalty-free redistribution of the Program by
219
+ all those who receive copies directly or indirectly through you, then
220
+ the only way you could satisfy both it and this License would be to
221
+ refrain entirely from distribution of the Program.
222
+
223
+ If any portion of this section is held invalid or unenforceable under
224
+ any particular circumstance, the balance of the section is intended to
225
+ apply and the section as a whole is intended to apply in other
226
+ circumstances.
227
+
228
+ It is not the purpose of this section to induce you to infringe any
229
+ patents or other property right claims or to contest validity of any
230
+ such claims; this section has the sole purpose of protecting the
231
+ integrity of the free software distribution system, which is
232
+ implemented by public license practices. Many people have made
233
+ generous contributions to the wide range of software distributed
234
+ through that system in reliance on consistent application of that
235
+ system; it is up to the author/donor to decide if he or she is willing
236
+ to distribute software through any other system and a licensee cannot
237
+ impose that choice.
238
+
239
+ This section is intended to make thoroughly clear what is believed to
240
+ be a consequence of the rest of this License.
241
+
242
+ 8. If the distribution and/or use of the Program is restricted in
243
+ certain countries either by patents or by copyrighted interfaces, the
244
+ original copyright holder who places the Program under this License
245
+ may add an explicit geographical distribution limitation excluding
246
+ those countries, so that distribution is permitted only in or among
247
+ countries not thus excluded. In such case, this License incorporates
248
+ the limitation as if written in the body of this License.
249
+
250
+ 9. The Free Software Foundation may publish revised and/or new versions
251
+ of the General Public License from time to time. Such new versions will
252
+ be similar in spirit to the present version, but may differ in detail to
253
+ address new problems or concerns.
254
+
255
+ Each version is given a distinguishing version number. If the Program
256
+ specifies a version number of this License which applies to it and "any
257
+ later version", you have the option of following the terms and conditions
258
+ either of that version or of any later version published by the Free
259
+ Software Foundation. If the Program does not specify a version number of
260
+ this License, you may choose any version ever published by the Free Software
261
+ Foundation.
262
+
263
+ 10. If you wish to incorporate parts of the Program into other free
264
+ programs whose distribution conditions are different, write to the author
265
+ to ask for permission. For software which is copyrighted by the Free
266
+ Software Foundation, write to the Free Software Foundation; we sometimes
267
+ make exceptions for this. Our decision will be guided by the two goals
268
+ of preserving the free status of all derivatives of our free software and
269
+ of promoting the sharing and reuse of software generally.
270
+
271
+ NO WARRANTY
272
+
273
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
274
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
275
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
276
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
277
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
278
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
279
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
280
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
281
+ REPAIR OR CORRECTION.
282
+
283
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
284
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
285
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
286
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
287
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
288
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
289
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
290
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
291
+ POSSIBILITY OF SUCH DAMAGES.
292
+
293
+ END OF TERMS AND CONDITIONS
294
+
295
+ How to Apply These Terms to Your New Programs
296
+
297
+ If you develop a new program, and you want it to be of the greatest
298
+ possible use to the public, the best way to achieve this is to make it
299
+ free software which everyone can redistribute and change under these terms.
300
+
301
+ To do so, attach the following notices to the program. It is safest
302
+ to attach them to the start of each source file to most effectively
303
+ convey the exclusion of warranty; and each file should have at least
304
+ the "copyright" line and a pointer to where the full notice is found.
305
+
306
+ <one line to give the program's name and a brief idea of what it does.>
307
+ Copyright (C) <year> <name of author>
308
+
309
+ This program is free software; you can redistribute it and/or modify
310
+ it under the terms of the GNU General Public License as published by
311
+ the Free Software Foundation; either version 2 of the License, or
312
+ (at your option) any later version.
313
+
314
+ This program is distributed in the hope that it will be useful,
315
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
316
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
317
+ GNU General Public License for more details.
318
+
319
+ You should have received a copy of the GNU General Public License along
320
+ with this program; if not, write to the Free Software Foundation, Inc.,
321
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
322
+
323
+ Also add information on how to contact you by electronic and paper mail.
324
+
325
+ If the program is interactive, make it output a short notice like this
326
+ when it starts in an interactive mode:
327
+
328
+ Gnomovision version 69, Copyright (C) year name of author
329
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
330
+ This is free software, and you are welcome to redistribute it
331
+ under certain conditions; type `show c' for details.
332
+
333
+ The hypothetical commands `show w' and `show c' should show the appropriate
334
+ parts of the General Public License. Of course, the commands you use may
335
+ be called something other than `show w' and `show c'; they could even be
336
+ mouse-clicks or menu items--whatever suits your program.
337
+
338
+ You should also get your employer (if you work as a programmer) or your
339
+ school, if any, to sign a "copyright disclaimer" for the program, if
340
+ necessary. Here is a sample; alter the names:
341
+
342
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
343
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
344
+
345
+ <signature of Ty Coon>, 1 April 1989
346
+ Ty Coon, President of Vice
347
+
348
+ This General Public License does not permit incorporating your program into
349
+ proprietary programs. If your program is a subroutine library, you may
350
+ consider it more useful to permit linking proprietary applications with the
351
+ library. If this is what you want to do, use the GNU Lesser General
352
+ Public License instead of this License.
@@ -21,55 +21,12 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj \
21
21
  m4/ltversion.m4 src/debug.c msvcc.sh \
22
22
  generate-darwin-source-and-headers.py \
23
23
  libffi.xcodeproj/project.pbxproj \
24
- libtool-ldflags libtool-version configure.host
24
+ libtool-ldflags libtool-version configure.host README.md \
25
+ libffi.map.in
25
26
 
26
27
  # local.exp is generated by configure
27
28
  DISTCLEANFILES = local.exp
28
29
 
29
- ## ################################################################
30
-
31
- ##
32
- ## This section is for make and multilib madness.
33
- ##
34
-
35
- # Work around what appears to be a GNU make bug handling MAKEFLAGS
36
- # values defined in terms of make variables, as is the case for CC and
37
- # friends when we are called from the top level Makefile.
38
- AM_MAKEFLAGS = \
39
- 'AR_FLAGS=$(AR_FLAGS)' \
40
- 'CC_FOR_BUILD=$(CC_FOR_BUILD)' \
41
- 'CFLAGS=$(CFLAGS)' \
42
- 'CXXFLAGS=$(CXXFLAGS)' \
43
- 'CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)' \
44
- 'CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)' \
45
- 'INSTALL=$(INSTALL)' \
46
- 'INSTALL_DATA=$(INSTALL_DATA)' \
47
- 'INSTALL_PROGRAM=$(INSTALL_PROGRAM)' \
48
- 'INSTALL_SCRIPT=$(INSTALL_SCRIPT)' \
49
- 'JC1FLAGS=$(JC1FLAGS)' \
50
- 'LDFLAGS=$(LDFLAGS)' \
51
- 'LIBCFLAGS=$(LIBCFLAGS)' \
52
- 'LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)' \
53
- 'MAKE=$(MAKE)' \
54
- 'MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)' \
55
- 'PICFLAG=$(PICFLAG)' \
56
- 'PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)' \
57
- 'RUNTESTFLAGS=$(RUNTESTFLAGS)' \
58
- 'SHELL=$(SHELL)' \
59
- 'exec_prefix=$(exec_prefix)' \
60
- 'infodir=$(infodir)' \
61
- 'libdir=$(libdir)' \
62
- 'mandir=$(mandir)' \
63
- 'prefix=$(prefix)' \
64
- 'AR=$(AR)' \
65
- 'AS=$(AS)' \
66
- 'CC=$(CC)' \
67
- 'CXX=$(CXX)' \
68
- 'LD=$(LD)' \
69
- 'NM=$(NM)' \
70
- 'RANLIB=$(RANLIB)' \
71
- 'DESTDIR=$(DESTDIR)'
72
-
73
30
  # Subdir rules rely on $(FLAGS_TO_PASS)
74
31
  FLAGS_TO_PASS = $(AM_MAKEFLAGS)
75
32
 
@@ -109,6 +66,7 @@ noinst_HEADERS = \
109
66
  src/or1k/ffitarget.h \
110
67
  src/pa/ffitarget.h \
111
68
  src/powerpc/ffitarget.h src/powerpc/asm.h src/powerpc/ffi_powerpc.h \
69
+ src/riscv/ffitarget.h \
112
70
  src/s390/ffitarget.h src/s390/internal.h \
113
71
  src/sh/ffitarget.h \
114
72
  src/sh64/ffitarget.h \
@@ -144,6 +102,7 @@ EXTRA_libffi_la_SOURCES = \
144
102
  src/powerpc/linux64_closure.S src/powerpc/ppc_closure.S \
145
103
  src/powerpc/aix.S src/powerpc/darwin.S src/powerpc/aix_closure.S \
146
104
  src/powerpc/darwin_closure.S src/powerpc/ffi_darwin.c \
105
+ src/riscv/ffi.c src/riscv/sysv.S \
147
106
  src/s390/ffi.c src/s390/sysv.S \
148
107
  src/sh/ffi.c src/sh/sysv.S \
149
108
  src/sh64/ffi.c src/sh64/sysv.S \
@@ -1,7 +1,10 @@
1
1
  Status
2
2
  ======
3
3
 
4
- libffi-4?? was released on TBD. Check the libffi web
4
+ [![Build Status](https://travis-ci.org/libffi/libffi.svg?branch=master)](https://travis-ci.org/libffi/libffi)
5
+ [![Build status](https://ci.appveyor.com/api/projects/status/8lko9vagbx4w2kxq?svg=true)](https://ci.appveyor.com/project/atgreen/libffi)
6
+
7
+ libffi-3.3-rc0 was released on April 2, 2018. Check the libffi web
5
8
  page for updates: <URL:http://sourceware.org/libffi/>.
6
9
 
7
10
 
@@ -40,17 +43,12 @@ Supported Platforms
40
43
  ===================
41
44
 
42
45
  Libffi has been ported to many different platforms.
43
- For specific configuration details and testing status, please
44
- refer to the wiki page here:
45
-
46
- http://www.moxielogic.org/wiki/index.php?title=Libffi_3.2
47
46
 
48
47
  At the time of release, the following basic configurations have been
49
48
  tested:
50
49
 
51
- |-----------------+------------------+-------------------------|
52
50
  | Architecture | Operating System | Compiler |
53
- |-----------------+------------------+-------------------------|
51
+ | --------------- | ---------------- | ----------------------- |
54
52
  | AArch64 (ARM64) | iOS | Clang |
55
53
  | AArch64 | Linux | GCC |
56
54
  | Alpha | Linux | GCC |
@@ -84,6 +82,8 @@ tested:
84
82
  | PowerPC 64-bit | FreeBSD | GCC |
85
83
  | PowerPC 64-bit | Linux ELFv1 | GCC |
86
84
  | PowerPC 64-bit | Linux ELFv2 | GCC |
85
+ | RISC-V 32-bit | Linux | GCC |
86
+ | RISC-V 64-bit | Linux | GCC |
87
87
  | S390 | Linux | GCC |
88
88
  | S390X | Linux | GCC |
89
89
  | SPARC | Linux | GCC |
@@ -115,11 +115,9 @@ tested:
115
115
  | X86-64 | Windows/MingW | GCC |
116
116
  | X86-64 | Mac OSX | GCC |
117
117
  | Xtensa | Linux | GCC |
118
- |-----------------+------------------+-------------------------|
119
118
 
120
119
  Please send additional platform test results to
121
- libffi-discuss@sourceware.org and feel free to update the wiki page
122
- above.
120
+ libffi-discuss@sourceware.org.
123
121
 
124
122
  Installing libffi
125
123
  =================
@@ -127,50 +125,56 @@ Installing libffi
127
125
  First you must configure the distribution for your particular
128
126
  system. Go to the directory you wish to build libffi in and run the
129
127
  "configure" program found in the root directory of the libffi source
130
- distribution.
128
+ distribution. Note that building libffi requires a C99 compatible
129
+ compiler.
131
130
 
132
- If you're building libffi directly from version control, configure won't
133
- exist yet; run ./autogen.sh first.
131
+ If you're building libffi directly from git hosted sources, configure
132
+ won't exist yet; run ./autogen.sh first. This will require that you
133
+ install autoconf, automake and libtool.
134
134
 
135
135
  You may want to tell configure where to install the libffi library and
136
- header files. To do that, use the --prefix configure switch. Libffi
136
+ header files. To do that, use the ``--prefix`` configure switch. Libffi
137
137
  will install under /usr/local by default.
138
138
 
139
139
  If you want to enable extra run-time debugging checks use the the
140
- --enable-debug configure switch. This is useful when your program dies
140
+ ``--enable-debug`` configure switch. This is useful when your program dies
141
141
  mysteriously while using libffi.
142
142
 
143
- Another useful configure switch is --enable-purify-safety. Using this
143
+ Another useful configure switch is ``--enable-purify-safety``. Using this
144
144
  will add some extra code which will suppress certain warnings when you
145
145
  are using Purify with libffi. Only use this switch when using
146
146
  Purify, as it will slow down the library.
147
147
 
148
- If you don't want to build documentation, use the --disable-docs
148
+ If you don't want to build documentation, use the ``--disable-docs``
149
149
  configure switch.
150
150
 
151
151
  It's also possible to build libffi on Windows platforms with
152
152
  Microsoft's Visual C++ compiler. In this case, use the msvcc.sh
153
153
  wrapper script during configuration like so:
154
154
 
155
- path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP="cl -nologo -EP"
155
+ path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP="cl -nologo -EP"
156
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.
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
159
+ ``--build`` appropriately.
160
160
 
161
161
  It is also possible to build libffi on Windows platforms with the LLVM
162
162
  project's clang-cl compiler, like below:
163
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"
164
+ path/to/configure CC="path/to/msvcc.sh -clang-cl" CXX="path/to/msvcc.sh -clang-cl" LD=link CPP="clang-cl -EP"
165
165
 
166
166
  When building with MSVC under a MingW environment, you may need to
167
167
  remove the line in configure that sets 'fix_srcfile_path' to a 'cygpath'
168
168
  command. ('cygpath' is not present in MingW, and is not required when
169
169
  using MingW-style paths.)
170
170
 
171
- For iOS builds, the 'libffi.xcodeproj' Xcode project is available.
171
+ SPARC Solaris builds require the use of the GNU assembler and linker.
172
+ Point ``AS`` and ``LD`` environment variables at those tool prior to
173
+ configuration.
172
174
 
173
- Configure has many other options. Use "configure --help" to see them all.
175
+ For iOS builds, the ``libffi.xcodeproj`` Xcode project is available.
176
+
177
+ Configure has many other options. Use ``configure --help`` to see them all.
174
178
 
175
179
  Once configure has finished, type "make". Note that you must be using
176
180
  GNU make. You can ftp GNU make from ftp.gnu.org:/pub/gnu/make .
@@ -178,7 +182,7 @@ GNU make. You can ftp GNU make from ftp.gnu.org:/pub/gnu/make .
178
182
  To ensure that libffi is working as advertised, type "make check".
179
183
  This will require that you have DejaGNU installed.
180
184
 
181
- To install the library and header files, type "make install".
185
+ To install the library and header files, type ``make install``.
182
186
 
183
187
 
184
188
  History
@@ -186,204 +190,207 @@ History
186
190
 
187
191
  See the git log for details at http://github.com/libffi/libffi.
188
192
 
189
- 4.0 TBD
193
+ 3.3 TBD
194
+ Add RISC-V support.
190
195
  New API in support of GO closures.
191
-
192
- 3.2.1 Nov-12-14
196
+ Default to Microsoft's 64 bit long double ABI with Visual C++.
197
+ GNU compiler uses 80 bits (128 in memory) FFI_GNUW64 ABI.
198
+ Many new tests cases and bug fixes.
199
+
200
+ 3.2.1 Nov-12-14
193
201
  Build fix for non-iOS AArch64 targets.
194
-
195
- 3.2 Nov-11-14
202
+
203
+ 3.2 Nov-11-14
196
204
  Add C99 Complex Type support (currently only supported on
197
205
  s390).
198
- Add support for PASCAL and REGISTER calling conventions on x86
199
- Windows/Linux.
200
- Add OpenRISC and Cygwin-64 support.
206
+ Add support for PASCAL and REGISTER calling conventions on x86
207
+ Windows/Linux.
208
+ Add OpenRISC and Cygwin-64 support.
201
209
  Bug fixes.
202
-
203
- 3.1 May-19-14
210
+
211
+ 3.1 May-19-14
204
212
  Add AArch64 (ARM64) iOS support.
205
213
  Add Nios II support.
206
214
  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
215
+ Add support for stdcall, thiscall, and fastcall on non-Windows
216
+ 32-bit x86 targets such as Linux.
217
+ Various Android, MIPS N32, x86, FreeBSD and UltraSPARC IIi
218
+ fixes.
219
+ Make the testsuite more robust: eliminate several spurious
220
+ failures, and respect the $CC and $CXX environment variables.
221
+ Archive off the manually maintained ChangeLog in favor of git
222
+ log.
223
+
224
+ 3.0.13 Mar-17-13
225
+ Add Meta support.
226
+ Add missing Moxie bits.
227
+ Fix stack alignment bug on 32-bit x86.
228
+ Build fix for m68000 targets.
229
+ Build fix for soft-float Power targets.
230
+ Fix the install dir location for some platforms when building
231
+ with GCC (OS X, Solaris).
232
+ Fix Cygwin regression.
233
+
234
+ 3.0.12 Feb-11-13
227
235
  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
236
+ Add AArch64 support.
237
+ Add Blackfin support.
238
+ Add TILE-Gx/TILEPro support.
239
+ Add MicroBlaze support.
240
+ Add Xtensa support.
241
+ Add support for PaX enabled kernels with MPROTECT.
242
+ Add support for native vendor compilers on
243
+ Solaris and AIX.
244
+ Work around LLVM/GCC interoperability issue on x86_64.
245
+
246
+ 3.0.11 Apr-11-12
239
247
  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.
248
-
249
- 3.0.10 Aug-23-11
248
+ Add support for variadic functions (ffi_prep_cif_var).
249
+ Add Linux/x32 support.
250
+ Add thiscall, fastcall and MSVC cdecl support on Windows.
251
+ Add Amiga and newer MacOS support.
252
+ Add m68k FreeMiNT support.
253
+ Integration with iOS' xcode build tools.
254
+ Fix Octeon and MC68881 support.
255
+ Fix code pessimizations.
256
+
257
+ 3.0.10 Aug-23-11
250
258
  Add support for Apple's iOS.
251
- Add support for ARM VFP ABI.
259
+ Add support for ARM VFP ABI.
252
260
  Add RTEMS support for MIPS and M68K.
253
- Fix instruction cache clearing problems on
254
- ARM and SPARC.
255
- Fix the N64 build on mips-sgi-irix6.5.
256
- Enable builds with Microsoft's compiler.
257
- Enable x86 builds with Oracle's Solaris compiler.
258
- Fix support for calling code compiled with Oracle's Sparc
259
- Solaris compiler.
260
- Testsuite fixes for Tru64 Unix.
261
- Additional platform support.
262
-
263
- 3.0.9 Dec-31-09
261
+ Fix instruction cache clearing problems on
262
+ ARM and SPARC.
263
+ Fix the N64 build on mips-sgi-irix6.5.
264
+ Enable builds with Microsoft's compiler.
265
+ Enable x86 builds with Oracle's Solaris compiler.
266
+ Fix support for calling code compiled with Oracle's Sparc
267
+ Solaris compiler.
268
+ Testsuite fixes for Tru64 Unix.
269
+ Additional platform support.
270
+
271
+ 3.0.9 Dec-31-09
264
272
  Add AVR32 and win64 ports. Add ARM softfp support.
265
- Many fixes for AIX, Solaris, HP-UX, *BSD.
266
- Several PowerPC and x86-64 bug fixes.
267
- Build DLL for windows.
268
-
269
- 3.0.8 Dec-19-08
273
+ Many fixes for AIX, Solaris, HP-UX, *BSD.
274
+ Several PowerPC and x86-64 bug fixes.
275
+ Build DLL for windows.
276
+
277
+ 3.0.8 Dec-19-08
270
278
  Add *BSD, BeOS, and PA-Linux support.
271
-
272
- 3.0.7 Nov-11-08
279
+
280
+ 3.0.7 Nov-11-08
273
281
  Fix for ppc FreeBSD.
274
- (thanks to Andreas Tobler)
275
-
276
- 3.0.6 Jul-17-08
282
+ (thanks to Andreas Tobler)
283
+
284
+ 3.0.6 Jul-17-08
277
285
  Fix for closures on sh.
278
- Mark the sh/sh64 stack as non-executable.
279
- (both thanks to Kaz Kojima)
280
-
281
- 3.0.5 Apr-3-08
286
+ Mark the sh/sh64 stack as non-executable.
287
+ (both thanks to Kaz Kojima)
288
+
289
+ 3.0.5 Apr-3-08
282
290
  Fix libffi.pc file.
283
- Fix #define ARM for IcedTea users.
284
- Fix x86 closure bug.
285
-
286
- 3.0.4 Feb-24-08
291
+ Fix #define ARM for IcedTea users.
292
+ Fix x86 closure bug.
293
+
294
+ 3.0.4 Feb-24-08
287
295
  Fix x86 OpenBSD configury.
288
-
289
- 3.0.3 Feb-22-08
296
+
297
+ 3.0.3 Feb-22-08
290
298
  Enable x86 OpenBSD thanks to Thomas Heller, and
291
- x86-64 FreeBSD thanks to Björn König and Andreas Tobler.
292
- Clean up test instruction in README.
293
-
294
- 3.0.2 Feb-21-08
299
+ x86-64 FreeBSD thanks to Björn König and Andreas Tobler.
300
+ Clean up test instruction in README.
301
+
302
+ 3.0.2 Feb-21-08
295
303
  Improved x86 FreeBSD support.
296
- Thanks to Björn König.
297
-
298
- 3.0.1 Feb-15-08
304
+ Thanks to Björn König.
305
+
306
+ 3.0.1 Feb-15-08
299
307
  Fix instruction cache flushing bug on MIPS.
300
- Thanks to David Daney.
301
-
302
- 3.0.0 Feb-15-08
308
+ Thanks to David Daney.
309
+
310
+ 3.0.0 Feb-15-08
303
311
  Many changes, mostly thanks to the GCC project.
304
- Cygnus Solutions is now Red Hat.
305
-
306
- [10 years go by...]
307
-
308
- 1.20 Oct-5-98
309
- Raffaele Sena produces ARM port.
310
-
311
- 1.19 Oct-5-98
312
- Fixed x86 long double and long long return support.
313
- m68k bug fixes from Andreas Schwab.
314
- Patch for DU assembler compatibility for the Alpha from Richard
315
- Henderson.
316
-
317
- 1.18 Apr-17-98
318
- Bug fixes and MIPS configuration changes.
319
-
320
- 1.17 Feb-24-98
321
- Bug fixes and m68k port from Andreas Schwab. PowerPC port from
322
- Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes.
323
-
324
- 1.16 Feb-11-98
325
- Richard Henderson produces Alpha port.
326
-
327
- 1.15 Dec-4-97
328
- Fixed an n32 ABI bug. New libtool, auto* support.
329
-
330
- 1.14 May-13-97
331
- libtool is now used to generate shared and static libraries.
332
- Fixed a minor portability problem reported by Russ McManus
333
- <mcmanr@eq.gs.com>.
334
-
335
- 1.13 Dec-2-96
336
- Added --enable-purify-safety to keep Purify from complaining
337
- about certain low level code.
338
- Sparc fix for calling functions with < 6 args.
339
- Linux x86 a.out fix.
340
-
341
- 1.12 Nov-22-96
342
- Added missing ffi_type_void, needed for supporting void return
343
- types. Fixed test case for non MIPS machines. Cygnus Support
344
- is now Cygnus Solutions.
345
-
346
- 1.11 Oct-30-96
347
- Added notes about GNU make.
348
-
349
- 1.10 Oct-29-96
350
- Added configuration fix for non GNU compilers.
351
-
352
- 1.09 Oct-29-96
353
- Added --enable-debug configure switch. Clean-ups based on LCLint
354
- feedback. ffi_mips.h is always installed. Many configuration
355
- fixes. Fixed ffitest.c for sparc builds.
356
-
357
- 1.08 Oct-15-96
358
- Fixed n32 problem. Many clean-ups.
359
-
360
- 1.07 Oct-14-96
361
- Gordon Irlam rewrites v8.S again. Bug fixes.
362
-
363
- 1.06 Oct-14-96
364
- Gordon Irlam improved the sparc port.
365
-
366
- 1.05 Oct-14-96
367
- Interface changes based on feedback.
368
-
369
- 1.04 Oct-11-96
370
- Sparc port complete (modulo struct passing bug).
371
-
372
- 1.03 Oct-10-96
373
- Passing struct args, and returning struct values works for
374
- all architectures/calling conventions. Expanded tests.
375
-
376
- 1.02 Oct-9-96
377
- Added SGI n32 support. Fixed bugs in both o32 and Linux support.
378
- Added "make test".
379
-
380
- 1.01 Oct-8-96
381
- Fixed float passing bug in mips version. Restructured some
382
- of the code. Builds cleanly with SGI tools.
383
-
384
- 1.00 Oct-7-96
385
- First release. No public announcement.
386
-
312
+ Cygnus Solutions is now Red Hat.
313
+
314
+ [10 years go by...]
315
+
316
+ 1.20 Oct-5-98
317
+ Raffaele Sena produces ARM port.
318
+
319
+ 1.19 Oct-5-98
320
+ Fixed x86 long double and long long return support.
321
+ m68k bug fixes from Andreas Schwab.
322
+ Patch for DU assembler compatibility for the Alpha from Richard
323
+ Henderson.
324
+
325
+ 1.18 Apr-17-98
326
+ Bug fixes and MIPS configuration changes.
327
+
328
+ 1.17 Feb-24-98
329
+ Bug fixes and m68k port from Andreas Schwab. PowerPC port from
330
+ Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes.
331
+
332
+ 1.16 Feb-11-98
333
+ Richard Henderson produces Alpha port.
334
+
335
+ 1.15 Dec-4-97
336
+ Fixed an n32 ABI bug. New libtool, auto* support.
337
+
338
+ 1.14 May-13-97
339
+ libtool is now used to generate shared and static libraries.
340
+ Fixed a minor portability problem reported by Russ McManus
341
+ <mcmanr@eq.gs.com>.
342
+
343
+ 1.13 Dec-2-96
344
+ Added --enable-purify-safety to keep Purify from complaining
345
+ about certain low level code.
346
+ Sparc fix for calling functions with < 6 args.
347
+ Linux x86 a.out fix.
348
+
349
+ 1.12 Nov-22-96
350
+ Added missing ffi_type_void, needed for supporting void return
351
+ types. Fixed test case for non MIPS machines. Cygnus Support
352
+ is now Cygnus Solutions.
353
+
354
+ 1.11 Oct-30-96
355
+ Added notes about GNU make.
356
+
357
+ 1.10 Oct-29-96
358
+ Added configuration fix for non GNU compilers.
359
+
360
+ 1.09 Oct-29-96
361
+ Added --enable-debug configure switch. Clean-ups based on LCLint
362
+ feedback. ffi_mips.h is always installed. Many configuration
363
+ fixes. Fixed ffitest.c for sparc builds.
364
+
365
+ 1.08 Oct-15-96
366
+ Fixed n32 problem. Many clean-ups.
367
+
368
+ 1.07 Oct-14-96
369
+ Gordon Irlam rewrites v8.S again. Bug fixes.
370
+
371
+ 1.06 Oct-14-96
372
+ Gordon Irlam improved the sparc port.
373
+
374
+ 1.05 Oct-14-96
375
+ Interface changes based on feedback.
376
+
377
+ 1.04 Oct-11-96
378
+ Sparc port complete (modulo struct passing bug).
379
+
380
+ 1.03 Oct-10-96
381
+ Passing struct args, and returning struct values works for
382
+ all architectures/calling conventions. Expanded tests.
383
+
384
+ 1.02 Oct-9-96
385
+ Added SGI n32 support. Fixed bugs in both o32 and Linux support.
386
+ Added "make test".
387
+
388
+ 1.01 Oct-8-96
389
+ Fixed float passing bug in mips version. Restructured some
390
+ of the code. Builds cleanly with SGI tools.
391
+
392
+ 1.00 Oct-7-96
393
+ First release. No public announcement.
387
394
 
388
395
  Authors & Credits
389
396
  =================
@@ -403,35 +410,35 @@ Thorup.
403
410
  Major processor architecture ports were contributed by the following
404
411
  developers:
405
412
 
406
- aarch64 Marcus Shawcroft, James Greenhalgh
407
- alpha Richard Henderson
408
- arm Raffaele Sena
409
- blackfin Alexandre Keunecke I. de Mendonca
410
- cris Simon Posnjak, Hans-Peter Nilsson
411
- frv Anthony Green
412
- ia64 Hans Boehm
413
- m32r Kazuhiro Inaoka
414
- m68k Andreas Schwab
415
- m88k Miod Vallat
416
- microblaze Nathan Rossi
417
- mips Anthony Green, Casey Marshall
418
- mips64 David Daney
419
- moxie Anthony Green
420
- nios ii Sandra Loosemore
421
- openrisc Sebastian Macke
422
- pa Randolph Chung, Dave Anglin, Andreas Tobler
423
- powerpc Geoffrey Keating, Andreas Tobler,
424
- David Edelsohn, John Hornkvist
425
- powerpc64 Jakub Jelinek
426
- s390 Gerhard Tonn, Ulrich Weigand
427
- sh Kaz Kojima
428
- sh64 Kaz Kojima
429
- sparc Anthony Green, Gordon Irlam
430
- tile-gx/tilepro Walter Lee
431
- vax Miod Vallat
432
- x86 Anthony Green, Jon Beniston
433
- x86-64 Bo Thorsen
434
- xtensa Chris Zankel
413
+ aarch64 Marcus Shawcroft, James Greenhalgh
414
+ alpha Richard Henderson
415
+ arm Raffaele Sena
416
+ blackfin Alexandre Keunecke I. de Mendonca
417
+ cris Simon Posnjak, Hans-Peter Nilsson
418
+ frv Anthony Green
419
+ ia64 Hans Boehm
420
+ m32r Kazuhiro Inaoka
421
+ m68k Andreas Schwab
422
+ m88k Miod Vallat
423
+ microblaze Nathan Rossi
424
+ mips Anthony Green, Casey Marshall
425
+ mips64 David Daney
426
+ moxie Anthony Green
427
+ nios ii Sandra Loosemore
428
+ openrisc Sebastian Macke
429
+ pa Randolph Chung, Dave Anglin, Andreas Tobler
430
+ powerpc Geoffrey Keating, Andreas Tobler,
431
+ David Edelsohn, John Hornkvist
432
+ powerpc64 Jakub Jelinek
433
+ s390 Gerhard Tonn, Ulrich Weigand
434
+ sh Kaz Kojima
435
+ sh64 Kaz Kojima
436
+ sparc Anthony Green, Gordon Irlam
437
+ tile-gx/tilepro Walter Lee
438
+ vax Miod Vallat
439
+ x86 Anthony Green, Jon Beniston
440
+ x86-64 Bo Thorsen
441
+ xtensa Chris Zankel
435
442
 
436
443
  Jesper Skov and Andrew Haley both did more than their fair share of
437
444
  stepping through the code and tracking down bugs.