• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
12008-01-24  David Edelsohn  <edelsohn@gnu.org>
2
3	* configure: Regenerate.
4
52008-01-06  Andreas Tobler  <a.tobler@schweiz.org>
6
7	* src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
8
92008-01-05  Andreas Tobler  <a.tobler@schweiz.org>
10
11	PR testsuite/32843
12	* src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
13	signed/unsigned int8/16 for X86_DARWIN.
14	Updated copyright info.
15	Handle one and two byte structs with special cif->flags.
16	* src/x86/ffitarget.h: Add special types for one and two byte structs.
17	Updated copyright info.
18	* src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
19	sysv.S
20	Remove code to pop args from the stack after call.
21	Special-case signed/unsigned for int8/16, one and two byte structs.
22	(ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
23	FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
24	FFI_TYPE_SINT32.
25	Updated copyright info.
26
272007-12-08  David Daney  <ddaney@avtrex.com>
28
29	* src/mips/n32.S (ffi_call_N32):  Replace dadd with ADDU, dsub with
30	SUBU, add with ADDU and use smaller code sequences.
31
322007-12-07  David Daney  <ddaney@avtrex.com>
33
34	* src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
35	type.
36
372007-12-06  David Daney  <ddaney@avtrex.com>
38
39	* include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not	already
40	defined.
41	(ffi_java_raw): New typedef.
42	(ffi_java_raw_call, ffi_java_ptrarray_to_raw,
43	ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
44	ffi_java_raw.
45	(ffi_java_raw_closure) : Same.
46	(ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
47	parameter types.
48	* src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
49	FFI_SIZEOF_JAVA_RAW.
50	(ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
51	Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
52	sizeof(ffi_java_raw) for alignment calculations.
53	(ffi_java_ptrarray_to_raw): Same.
54	(ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
55        if FFI_SIZEOF_JAVA_RAW == 4.
56	(ffi_java_raw_to_rvalue): Same.
57	(ffi_java_raw_call): Change type of raw to ffi_java_raw.
58	(ffi_java_translate_args): Same.
59	(ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
60	parameter types.
61	* src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
62
632007-12-06  David Daney  <ddaney@avtrex.com>
64
65	* src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
66	pointer values.
67
682007-12-01  Andreas Tobler  <a.tobler@schweiz.org>
69
70	PR libffi/31937
71	* src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
72	Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
73	* src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
74	set the NUM_FPR_ARG_REGISTERS according to.
75	Add support for potential soft-float support under hard-float
76	architecture.
77	(ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
78	FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
79	to the FFI_LINUX_SOFT_FLOAT ABI.
80	(ffi_prep_cif_machdep): Likewise.
81	(ffi_closure_helper_SYSV): Likewise.
82	* src/powerpc/ppc_closure.S: Make sure not to store float/double
83	on archs where __NO_FPRS__ is true.
84	Add FFI_TYPE_UINT128 support.
85	* src/powerpc/sysv.S: Add support for soft-float long-double-128.
86	Adjust copyright notice.
87
882007-11-25  Andreas Tobler  <a.tobler@schweiz.org>
89
90	* src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
91	* include/ffi_common.h: ... here.
92	Update copyright.
93
942007-11-17  Andreas Tobler  <a.tobler@schweiz.org>
95
96	* src/powerpc/sysv.S: Load correct cr to compare if we have long double.
97	* src/powerpc/linux64.S: Likewise.
98	* src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
99	* testsuite/libffi.call/return_ldl.c: New test.
100
1012007-09-04    <aph@redhat.com>
102
103	* src/arm/sysv.S (UNWIND): New.
104	(Whole file): Conditionally compile unwinder directives.
105	* src/arm/sysv.S: Add unwinder directives.
106
107	* src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
108	Only treat r0 as a struct address if we're actually returning a
109	struct by address.
110	Only copy the bytes that are actually within a struct.
111	(ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
112	is returned in r0, not passed by address.
113	(ffi_call): Allocate a word-sized temporary for the case where
114	a composite is returned in r0.
115	(ffi_prep_incoming_args_SYSV): Align as necessary.
116
1172007-08-05  Steven Newbury  <s_j_newbury@yahoo.co.uk>
118
119	* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
120	directly using the sys_cacheflush syscall.
121
1222007-07-27  Andrew Haley  <aph@redhat.com>
123
124	* src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
125
1262007-09-03  Maciej W. Rozycki  <macro@linux-mips.org>
127
128	* Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
129	* configure.ac: Likewise.
130	* Makefile.in: Regenerate.
131	* include/Makefile.in: Likewise.
132	* testsuite/Makefile.in: Likewise.
133	* configure: Likewise.
134
1352007-08-24  David Daney  <ddaney@avtrex.com>
136
137	* testsuite/libffi.call/return_sl.c: New test.
138
1392007-08-10  David Daney  <ddaney@avtrex.com>
140
141	* testsuite/libffi.call/cls_multi_ushort.c,
142	testsuite/libffi.call/cls_align_uint16.c,
143	testsuite/libffi.call/nested_struct1.c,
144	testsuite/libffi.call/nested_struct3.c,
145	testsuite/libffi.call/cls_7_1_byte.c,
146	testsuite/libffi.call/nested_struct5.c,
147	testsuite/libffi.call/cls_double.c,
148	testsuite/libffi.call/nested_struct7.c,
149	testsuite/libffi.call/cls_sint.c,
150	testsuite/libffi.call/nested_struct9.c,
151	testsuite/libffi.call/cls_20byte1.c,
152	testsuite/libffi.call/cls_multi_sshortchar.c,
153	testsuite/libffi.call/cls_align_sint64.c,
154	testsuite/libffi.call/cls_3byte2.c,
155	testsuite/libffi.call/cls_multi_schar.c,
156	testsuite/libffi.call/cls_multi_uchar.c,
157	testsuite/libffi.call/cls_19byte.c,
158	testsuite/libffi.call/cls_9byte1.c,
159	testsuite/libffi.call/cls_align_float.c,
160	testsuite/libffi.call/closure_fn1.c,
161	testsuite/libffi.call/problem1.c,
162	testsuite/libffi.call/closure_fn3.c,
163	testsuite/libffi.call/cls_sshort.c,
164	testsuite/libffi.call/closure_fn5.c,
165	testsuite/libffi.call/cls_align_double.c,
166	testsuite/libffi.call/nested_struct.c,
167	testsuite/libffi.call/cls_2byte.c,
168	testsuite/libffi.call/nested_struct10.c,
169	testsuite/libffi.call/cls_4byte.c,
170	testsuite/libffi.call/cls_6byte.c,
171	testsuite/libffi.call/cls_8byte.c,
172	testsuite/libffi.call/cls_multi_sshort.c,
173	testsuite/libffi.call/cls_align_sint16.c,
174	testsuite/libffi.call/cls_align_uint32.c,
175	testsuite/libffi.call/cls_20byte.c,
176	testsuite/libffi.call/cls_float.c,
177	testsuite/libffi.call/nested_struct2.c,
178	testsuite/libffi.call/cls_5_1_byte.c,
179	testsuite/libffi.call/nested_struct4.c,
180	testsuite/libffi.call/cls_24byte.c,
181	testsuite/libffi.call/nested_struct6.c,
182	testsuite/libffi.call/cls_64byte.c,
183	testsuite/libffi.call/nested_struct8.c,
184	testsuite/libffi.call/cls_uint.c,
185	testsuite/libffi.call/cls_multi_ushortchar.c,
186	testsuite/libffi.call/cls_schar.c,
187	testsuite/libffi.call/cls_uchar.c,
188	testsuite/libffi.call/cls_align_uint64.c,
189	testsuite/libffi.call/cls_ulonglong.c,
190	testsuite/libffi.call/cls_align_longdouble.c,
191	testsuite/libffi.call/cls_1_1byte.c,
192	testsuite/libffi.call/cls_12byte.c,
193	testsuite/libffi.call/cls_3_1byte.c,
194	testsuite/libffi.call/cls_3byte1.c,
195	testsuite/libffi.call/cls_4_1byte.c,
196	testsuite/libffi.call/cls_6_1_byte.c,
197	testsuite/libffi.call/cls_16byte.c,
198	testsuite/libffi.call/cls_18byte.c,
199	testsuite/libffi.call/closure_fn0.c,
200	testsuite/libffi.call/cls_9byte2.c,
201	testsuite/libffi.call/closure_fn2.c,
202	testsuite/libffi.call/closure_fn4.c,
203	testsuite/libffi.call/cls_ushort.c,
204	testsuite/libffi.call/closure_fn6.c,
205	testsuite/libffi.call/cls_5byte.c,
206	testsuite/libffi.call/cls_align_pointer.c,
207	testsuite/libffi.call/cls_7byte.c,
208	testsuite/libffi.call/cls_align_sint32.c,
209	testsuite/libffi.special/unwindtest_ffi_call.cc,
210	testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
211
2122007-08-10  David Daney  <ddaney@avtrex.com>
213
214	PR libffi/28313
215	* configure.ac: Don't treat mips64 as a special case.
216	* Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
217	* configure: Regenerate
218	* Makefile.in: Ditto.
219	* fficonfig.h.in: Ditto.
220	* src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
221	(LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
222	(FFI_DEFAULT_ABI): Set for n64 case.
223	(FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
224	* src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
225	(ffi_closure_N32): New function.
226	(.eh_frame): New section
227	* src/mips/o32.S: Clean up comments.
228	(ffi_closure_O32): Pass ffi_closure parameter in $12.
229	* src/mips/ffi.c: Use FFI_MIPS_N32 instead of
230	_MIPS_SIM == _ABIN32 throughout.
231	(FFI_MIPS_STOP_HERE): New, use in place of
232	ffi_stop_here.
233	(ffi_prep_args): Use unsigned long to hold pointer values.  Rewrite
234	to support n32/n64 ABIs.
235	(calc_n32_struct_flags): Rewrite.
236	(calc_n32_return_struct_flags): Remove unused variable.  Reverse
237	position of flag bits.
238	(ffi_prep_cif_machdep): Rewrite n32 portion.
239	(ffi_call): Enable for n64.  Add special handling for small structure
240	return values.
241	(ffi_prep_closure_loc): Add n32 and n64 support.
242	(ffi_closure_mips_inner_O32): Add cast to silence warning.
243	(copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
244
2452007-08-08  David Daney  <ddaney@avtrex.com>
246
247	* testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
248	* testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
249	specifiers.
250	* testsuite/libffi.call/nested_struct1.c (main): Ditto.
251	* testsuite/libffi.call/cls_sint.c (main): Ditto.
252	* testsuite/libffi.call/nested_struct9.c (main): Ditto.
253	* testsuite/libffi.call/cls_20byte1.c (main): Ditto.
254	* testsuite/libffi.call/cls_9byte1.c (main): Ditto.
255	* testsuite/libffi.call/closure_fn1.c (main): Ditto.
256	* testsuite/libffi.call/closure_fn3.c (main): Ditto.
257	* testsuite/libffi.call/return_dbl2.c (main): Ditto.
258	* testsuite/libffi.call/cls_sshort.c (main): Ditto.
259	* testsuite/libffi.call/return_fl3.c (main): Ditto.
260	* testsuite/libffi.call/closure_fn5.c (main): Ditto.
261	* testsuite/libffi.call/nested_struct.c (main): Ditto.
262	* testsuite/libffi.call/nested_struct10.c (main): Ditto.
263	* testsuite/libffi.call/return_ll1.c (main): Ditto.
264	* testsuite/libffi.call/cls_8byte.c (main): Ditto.
265	* testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
266	* testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
267	* testsuite/libffi.call/cls_20byte.c (main): Ditto.
268	* testsuite/libffi.call/nested_struct2.c (main): Ditto.
269	* testsuite/libffi.call/cls_24byte.c (main): Ditto.
270	* testsuite/libffi.call/nested_struct6.c (main): Ditto.
271	* testsuite/libffi.call/cls_uint.c (main): Ditto.
272	* testsuite/libffi.call/cls_12byte.c (main): Ditto.
273	* testsuite/libffi.call/cls_16byte.c (main): Ditto.
274	* testsuite/libffi.call/closure_fn0.c (main): Ditto.
275	* testsuite/libffi.call/cls_9byte2.c (main): Ditto.
276	* testsuite/libffi.call/closure_fn2.c (main): Ditto.
277	* testsuite/libffi.call/return_dbl1.c (main): Ditto.
278	* testsuite/libffi.call/closure_fn4.c (main): Ditto.
279	* testsuite/libffi.call/closure_fn6.c (main): Ditto.
280	* testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
281
2822007-08-07  Andrew Haley  <aph@redhat.com>
283
284	* src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
285	checkin.
286
2872007-08-06  Andrew Haley  <aph@redhat.com>
288
289	PR testsuite/32843
290	* src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
291	FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
292	FFI_TYPE_SINT32.
293
2942007-08-02  David Daney  <ddaney@avtrex.com>
295
296	* testsuite/libffi.call/return_ul.c (main): Define return type as
297	ffi_arg.  Use proper printf conversion specifier.
298
2992007-07-30  Andrew Haley  <aph@redhat.com>
300
301	PR testsuite/32843
302	* src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
303	signed/unsigned int8/16.
304	* src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
305	Use a jump table.
306	Remove code to pop args from the stack after call.
307	Special-case signed/unsigned int8/16.
308	* testsuite/libffi.call/return_sc.c (main): Revert.
309
3102007-07-26  Richard Guenther  <rguenther@suse.de>
311
312	PR testsuite/32843
313	* testsuite/libffi.call/return_sc.c (main): Verify call
314	result as signed char, not ffi_arg.
315
3162007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
317
318	* configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
319	* configure: Regenerate.
320
3212007-07-11  David Daney  <ddaney@avtrex.com>
322
323	* src/mips/ffi.c: Don't include sys/cachectl.h.
324	(ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
325	cacheflush().
326
3272007-05-18  Aurelien Jarno  <aurelien@aurel32.net>
328
329	* src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
330	from (ffi_prep_closure): ... this.
331	(FFI_INIT_TRAMPOLINE): Adjust.
332
3332005-12-31  Phil Blundell  <pb@reciva.com>
334
335	* src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
336        ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
337	* src/arm/sysv.S(ffi_closure_SYSV): Likewise.
338	* src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
339	(FFI_CLOSURES): Enable closure support.
340
3412007-07-03  Andrew Haley  <aph@hedges.billgatliff.com>
342
343        * testsuite/libffi.call/cls_multi_ushort.c,
344        testsuite/libffi.call/cls_align_uint16.c,
345        testsuite/libffi.call/nested_struct1.c,
346        testsuite/libffi.call/nested_struct3.c,
347        testsuite/libffi.call/cls_7_1_byte.c,
348        testsuite/libffi.call/cls_double.c,
349        testsuite/libffi.call/nested_struct5.c,
350        testsuite/libffi.call/nested_struct7.c,
351        testsuite/libffi.call/cls_sint.c,
352        testsuite/libffi.call/nested_struct9.c,
353        testsuite/libffi.call/cls_20byte1.c,
354        testsuite/libffi.call/cls_multi_sshortchar.c,
355        testsuite/libffi.call/cls_align_sint64.c,
356        testsuite/libffi.call/cls_3byte2.c,
357        testsuite/libffi.call/cls_multi_schar.c,
358        testsuite/libffi.call/cls_multi_uchar.c,
359        testsuite/libffi.call/cls_19byte.c,
360        testsuite/libffi.call/cls_9byte1.c,
361        testsuite/libffi.call/cls_align_float.c,
362        testsuite/libffi.call/closure_fn1.c,
363        testsuite/libffi.call/problem1.c,
364        testsuite/libffi.call/closure_fn3.c,
365        testsuite/libffi.call/cls_sshort.c,
366        testsuite/libffi.call/closure_fn5.c,
367        testsuite/libffi.call/cls_align_double.c,
368        testsuite/libffi.call/cls_2byte.c,
369        testsuite/libffi.call/nested_struct.c,
370        testsuite/libffi.call/nested_struct10.c,
371        testsuite/libffi.call/cls_4byte.c,
372        testsuite/libffi.call/cls_6byte.c,
373        testsuite/libffi.call/cls_8byte.c,
374        testsuite/libffi.call/cls_multi_sshort.c,
375        testsuite/libffi.call/cls_align_uint32.c,
376        testsuite/libffi.call/cls_align_sint16.c,
377        testsuite/libffi.call/cls_float.c,
378        testsuite/libffi.call/cls_20byte.c,
379        testsuite/libffi.call/cls_5_1_byte.c,
380        testsuite/libffi.call/nested_struct2.c,
381        testsuite/libffi.call/cls_24byte.c,
382        testsuite/libffi.call/nested_struct4.c,
383        testsuite/libffi.call/nested_struct6.c,
384        testsuite/libffi.call/cls_64byte.c,
385        testsuite/libffi.call/nested_struct8.c,
386        testsuite/libffi.call/cls_uint.c,
387        testsuite/libffi.call/cls_multi_ushortchar.c,
388        testsuite/libffi.call/cls_schar.c,
389        testsuite/libffi.call/cls_uchar.c,
390        testsuite/libffi.call/cls_align_uint64.c,
391        testsuite/libffi.call/cls_ulonglong.c,
392        testsuite/libffi.call/cls_align_longdouble.c,
393        testsuite/libffi.call/cls_1_1byte.c,
394        testsuite/libffi.call/cls_12byte.c,
395        testsuite/libffi.call/cls_3_1byte.c,
396        testsuite/libffi.call/cls_3byte1.c,
397        testsuite/libffi.call/cls_4_1byte.c,
398        testsuite/libffi.call/cls_6_1_byte.c,
399        testsuite/libffi.call/cls_16byte.c,
400        testsuite/libffi.call/cls_18byte.c,
401        testsuite/libffi.call/closure_fn0.c,
402        testsuite/libffi.call/cls_9byte2.c,
403        testsuite/libffi.call/closure_fn2.c,
404        testsuite/libffi.call/closure_fn4.c,
405        testsuite/libffi.call/cls_ushort.c,
406        testsuite/libffi.call/closure_fn6.c,
407        testsuite/libffi.call/cls_5byte.c,
408        testsuite/libffi.call/cls_align_pointer.c,
409        testsuite/libffi.call/cls_7byte.c,
410        testsuite/libffi.call/cls_align_sint32.c,
411        testsuite/libffi.special/unwindtest_ffi_call.cc,
412        testsuite/libffi.special/unwindtest.cc: Enable for ARM.
413
4142007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
415
416	* aclocal.m4: Regenerated.
417
4182007-06-02  Paolo Bonzini  <bonzini@gnu.org>
419
420	* configure: Regenerate.
421
4222007-05-23  Steve Ellcey  <sje@cup.hp.com>
423
424	* Makefile.in: Regenerate.
425	* configure: Regenerate.
426	* aclocal.m4: Regenerate.
427	* include/Makefile.in: Regenerate.
428	* testsuite/Makefile.in: Regenerate.
429
4302007-05-10  Roman Zippel <zippel@linux-m68k.org>
431
432	* src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
433	ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
434	* src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
435	* src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
436	(FFI_CLOSURES): Enable closure support.
437
4382007-05-10  Roman Zippel <zippel@linux-m68k.org>
439
440	* configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
441	* configure: Regenerate.
442	* fficonfig.h.in: Regenerate.
443	* src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
444	CFI_OFFSET,CFI_DEF_CFA): New macros.
445	(ffi_call_SYSV): Add callframe annotation.
446
4472007-05-10  Roman Zippel <zippel@linux-m68k.org>
448
449	* src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
450	numerous test suite failures.
451	* src/m68k/sysv.S (ffi_call_SYSV): Likewise.
452
4532007-04-11  Paolo Bonzini  <bonzini@gnu.org>
454
455	* Makefile.am (EXTRA_DIST): Bring up to date.
456	* Makefile.in: Regenerate.
457	* src/frv/eabi.S: Remove RCS keyword.
458
4592007-04-06  Richard Henderson  <rth@redhat.com>
460
461	* configure.ac: Tidy target case.
462	(HAVE_LONG_DOUBLE): Allow the target to override.
463	* configure: Regenerate.
464	* include/ffi.h.in: Don't define ffi_type_foo if
465	LIBFFI_HIDE_BASIC_TYPES is defined.
466	(ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
467	to ffi_type_double.
468	* types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
469	(FFI_TYPEDEF, ffi_type_void): Mark the data const.
470	(ffi_type_longdouble): Special case for Alpha.  Don't define
471	if long double == double.
472
473	* src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
474	(ffi_prep_cif_machdep): Handle it as the 128-bit type.
475	(ffi_call, ffi_closure_osf_inner): Likewise.
476	(ffi_closure_osf_inner): Likewise.  Mark hidden.
477	(ffi_call_osf, ffi_closure_osf): Mark hidden.
478	* src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
479	* src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
480	(load_table): Handle 128-bit long double.
481
482	* testsuite/libffi.call/float4.c: Add -mieee for alpha.
483
4842007-04-06  Tom Tromey  <tromey@redhat.com>
485
486	PR libffi/31491:
487	* README: Fixed bug in example.
488
4892007-04-03  Jakub Jelinek  <jakub@redhat.com>
490
491	* src/closures.c: Include sys/statfs.h.
492	(_GNU_SOURCE): Define on Linux.
493	(FFI_MMAP_EXEC_SELINUX): Define.
494	(selinux_enabled): New variable.
495	(selinux_enabled_check): New function.
496	(is_selinux_enabled): Define.
497	(dlmmap): Use it.
498
4992007-03-24  Uros Bizjak  <ubizjak@gmail.com>
500
501	* testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
502	Use 'volatile float sum' to create sum of floats to avoid false
503	negative due to excess precision on ix86 targets.
504	(main): Ditto.
505
5062007-03-08  Alexandre Oliva  <aoliva@redhat.com>
507
508	* src/powerpc/ffi.c (flush_icache): Fix left-over from previous
509	patch.
510	(ffi_prep_closure_loc): Remove unneeded casts.  Add needed ones.
511
5122007-03-07  Alexandre Oliva  <aoliva@redhat.com>
513
514	* include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
515	(ffi_prep_closure_loc): New.
516	(ffi_prep_raw_closure_loc): New.
517	(ffi_prep_java_raw_closure_loc): New.
518	* src/closures.c: New file.
519	* src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
520	Replace sflags with exec_offset.
521	[FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
522	sub_segment_exec_offset): New macros.
523	(get_segment_flags, set_segment_flags, check_segment_merge): New
524	macros.
525	(is_mmapped_segment, is_extern_segment): Use get_segment_flags.
526	(add_segment, sys_alloc, create_mspace, create_mspace_with_base,
527	destroy_mspace): Use new macros.
528	(sys_alloc): Silence warning.
529	* Makefile.am (libffi_la_SOURCES): Add src/closures.c.
530	* Makefile.in: Rebuilt.
531	* src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
532	terms of ffi_prep_closure_loc.
533	* src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
534	from...
535	(ffi_prep_raw_closure): ... this.  Re-implement in terms of the
536	renamed version.
537	* src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
538	adjusted from...
539	(ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
540	the renamed version.
541	* src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
542	(ffi_prep_closure): ... this.
543	* src/pa/ffi.c: Likewise.
544	* src/cris/ffi.c: Likewise.  Adjust.
545	* src/frv/ffi.c: Likewise.
546	* src/ia64/ffi.c: Likewise.
547	* src/mips/ffi.c: Likewise.
548	* src/powerpc/ffi_darwin.c: Likewise.
549	* src/s390/ffi.c: Likewise.
550	* src/sh/ffi.c: Likewise.
551	* src/sh64/ffi.c: Likewise.
552	* src/sparc/ffi.c: Likewise.
553	* src/x86/ffi64.c: Likewise.
554	* src/x86/ffi.c: Likewise.
555	(FFI_INIT_TRAMPOLINE): Adjust.
556	(ffi_prep_raw_closure_loc): Renamed and adjusted from...
557	(ffi_prep_raw_closure): ... this.
558	* src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
559	(ffi_prep_closure): ... this.
560	(flush_icache): Adjust.
561
5622007-03-07  Alexandre Oliva  <aoliva@redhat.com>
563
564	* src/dlmalloc.c: New file, imported version 2.8.3 of Doug
565	Lea's malloc.
566
5672007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
568
569	* Makefile.am: Add dummy install-pdf target.
570	* Makefile.in: Regenerate
571
5722007-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
573
574	* src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
575	ffi_closure_helper_SYSV): Add long double handling.
576
5772007-02-02  Jakub Jelinek  <jakub@redhat.com>
578
579	* src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
580	immediately after bctrl instruction.
581
5822007-01-18  Alexandre Oliva  <aoliva@redhat.com>
583
584	* Makefile.am (all-recursive, install-recursive,
585	mostlyclean-recursive, clean-recursive, distclean-recursive,
586	maintainer-clean-recursive): Add missing targets.
587	* Makefile.in: Rebuilt.
588
5892006-12-14  Andreas Tobler  <a.tobler@schweiz.org>
590
591	* configure.ac: Add TARGET for x86_64-*-darwin*.
592	* Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
593	for X86_DARWIN.
594	* src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
595	* src/x86/darwin64.S: New file for x86_64-*-darwin* support.
596	* configure: Regenerate.
597	* Makefile.in: Regenerate.
598	* include/Makefile.in: Regenerate.
599	* testsuite/Makefile.in: Regenerate.
600	* testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
601	ffi_call only.
602
6032006-12-13  Andreas Tobler <a.tobler@schweiz.org>
604
605	* aclocal.m4: Regenerate with aclocal -I .. as written in the
606	Makefile.am.
607
6082006-10-31  Geoffrey Keating  <geoffk@apple.com>
609
610	* src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
611	(ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
612	Darwin.
613	* testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
614	* testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
615
6162006-10-10  Paolo Bonzini  <bonzini@gnu.org>
617	    Sandro Tolaini  <tolaini@libero.it>
618
619	* configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
620	conditional.
621	* configure: Regenerated.
622	* Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
623	(EXTRA_DIST): Add src/x86/darwin.S.
624	* Makefile.in: Regenerated.
625	* include/Makefile.in: Regenerated.
626	* testsuite/Makefile.in: Regenerated.
627
628	* src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
629	X86_WIN32, and additionally align stack to 16 bytes.
630	* src/x86/darwin.S: New, based on sysv.S.
631	* src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
632
6332006-09-12  David Daney  <ddaney@avtrex.com>
634
635	PR libffi/23935
636	* include/Makefile.am: Install both ffi.h and ffitarget.h in
637	$(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
638	* aclocal.m4: Regenerated for automake 1.9.6.
639	* Makefile.in: Regenerated.
640	* include/Makefile.in: Regenerated.
641	* testsuite/Makefile.in: Regenerated.
642
6432006-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
644
645	* include/ffi_common.h (struct): Revert accidental commit.
646
6472006-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
648
649	* include/ffi_common.h: Remove lint directives.
650	* include/ffi.h.in: Likewise.
651
6522006-07-25  Torsten Schoenfeld  <kaffeetisch@gmx.de>
653
654	* include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
655	for 32-bit architectures.
656	* testsuite/libffi.call/return_ul.c: New test case.
657
6582006-07-19  David Daney  <ddaney@avtrex.com>
659
660	* testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
661	xfail remains for mips64.
662
6632006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
664
665	* Makefile.am: Add install-html target. Add install-html to .PHONY
666	* Makefile.in: Regenerate.
667	* aclocal.m4: Regenerate.
668	* include/Makefile.in: Regenerate.
669	* testsuite/Makefile.in: Regenerate.
670
6712006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
672
673	* pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
674	stack slot.
675
6762006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>
677
678	* README: Remove notice about 'Crazy Comments'.
679	* src/debug.c: Remove lint directives. Cleanup white spaces.
680	* src/java_raw_api.c: Likewise.
681	* src/prep_cif.c: Likewise.
682	* src/raw_api.c: Likewise.
683	* src/ffitest.c: Delete. No longer needed, all test cases migrated
684	to the testsuite.
685	* src/arm/ffi.c: Remove lint directives.
686	* src/m32r/ffi.c: Likewise.
687	* src/pa/ffi.c: Likewise.
688	* src/powerpc/ffi.c: Likewise.
689	* src/powerpc/ffi_darwin.c: Likewise.
690	* src/sh/ffi.c: Likewise.
691	* src/sh64/ffi.c: Likewise.
692	* src/x86/ffi.c: Likewise.
693	* testsuite/libffi.call/float2.c: Likewise.
694	* testsuite/libffi.call/promotion.c: Likewise.
695	* testsuite/libffi.call/struct1.c: Likewise.
696
6972006-04-13  Andreas Tobler  <a.tobler@schweiz.ch>
698
699	* src/pa/hpux32.S: Correct unwind offset calculation for
700	ffi_closure_pa32.
701	* src/pa/linux.S: Likewise.
702
7032006-04-12  James E Wilson  <wilson@specifix.com>
704
705	PR libgcj/26483
706	* src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
707	(hfa_type_load): Call stf_spill.
708	(hfa_type_store): Call ldf_fill.
709	(ffi_call): Adjust calls to above routines.  Add local temps for
710	macro result.
711
7122006-04-10  Matthias Klose  <doko@debian.org>
713
714	* testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
715	directory names containing underscores.
716
7172006-04-07  James E Wilson  <wilson@specifix.com>
718
719	* testsuite/libffi.call/float4.c: New testcase.
720
7212006-04-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
722	    Andreas Tobler  <a.tobler@schweiz.ch>
723
724	* Makefile.am: Add PA_HPUX port.
725	* Makefile.in: Regenerate.
726	* include/Makefile.in: Likewise.
727	* testsuite/Makefile.in: Likewise.
728	* configure.ac: Add PA_HPUX rules.
729	* configure: Regenerate.
730	* src/pa/ffitarget.h: Rename linux target to PA_LINUX.
731	Add PA_HPUX and PA64_HPUX.
732	Rename FFI_LINUX ABI to FFI_PA32 ABI.
733	(FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
734	(FFI_TYPE_SMALL_STRUCT2): Define.
735	(FFI_TYPE_SMALL_STRUCT4): Likewise.
736	(FFI_TYPE_SMALL_STRUCT8): Likewise.
737	(FFI_TYPE_SMALL_STRUCT3): Redefine.
738	(FFI_TYPE_SMALL_STRUCT5): Likewise.
739	(FFI_TYPE_SMALL_STRUCT6): Likewise.
740	(FFI_TYPE_SMALL_STRUCT7): Likewise.
741	* src/pa/ffi.c (ROUND_DOWN): Delete.
742	(fldw, fstw, fldd, fstd): Use '__asm__'.
743	(ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
744	FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
745	(ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
746	Simplify incrementing of stack slot variable. Change type of local
747	'n' to unsigned int.
748	(ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
749	double on PA_HPUX.
750	(ffi_prep_cif_machdep): Likewise.
751	(ffi_call): Likewise.
752	(ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
753	return type to ffi_status. Simplify incrementing of stack slot
754	variable. Only copy floating point argument registers when PA_LINUX
755	is true. Reformat debug statement.
756	Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
757	FFI_TYPE_SMALL_STRUCT8.
758	(ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
759	declaration.
760	(ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
761	Add nops to cache flush.  Add trampoline for PA_HPUX.
762	* src/pa/hpux32.S: New file.
763	* src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
764	ffi_prep_args_LINUX to ffi_prep_args_pa32.
765	Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
766	unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
767	argument type checks so that common argument types appear first.
768	(ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
769	ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
770
7712006-03-24  Alan Modra  <amodra@bigpond.net.au>
772
773	* src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
774	for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
775	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
776	FFI_TYPE_LONGDOUBLE.
777	(ffi_prep_args64): Assert using IBM extended double.
778	(ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
779	Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
780	(ffi_call): Handle FFI_LINUX.
781	(ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
782	gpr3 return pointer as for struct return.  Handle FFI_LINUX
783	FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
784	unnecessarily.
785	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
786	for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
787	Don't use r6 as pointer to results, instead use sp offset.  Don't
788	make a special call to load lr with case table address, instead
789	use offset from previous call.
790	* src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
791	* src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
792	return.
793
7942006-03-15  Kaz Kojima  <kkojima@gcc.gnu.org>
795
796	* src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
797	passed with FP registers correctly.
798	(ffi_closure_helper_SYSV): Likewise.
799	* src/sh64/sysv.S: Likewise.
800
8012006-03-01  Andreas Tobler  <a.tobler@schweiz.ch>
802
803	* testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
804	args and userdata unused.
805	(closure_test_fn1): Mark cif and userdata unused.
806	(main): Remove unused res.
807
8082006-02-28  Andreas Tobler  <a.tobler@schweiz.ch>
809
810	* testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
811	-O2, -O3, -Os and the warning flags -W -Wall.
812	* testsuite/libffi.special/special.exp: Likewise.
813	* testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
814	unused parameter unused for gcc or else do nothing.
815	* testsuite/libffi.special/ffitestcxx.h: Likewise.
816	* testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
817	and userdata unused.
818	* testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
819	* testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
820	* testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
821	* testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
822	* testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
823	* testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
824	* testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
825	* testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
826	* testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
827	* testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
828	* testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
829	* testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
830	* testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
831	* testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
832	* testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
833	* testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
834	* testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
835	* testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
836	* testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
837	* testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
838	* testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
839	* testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
840	* testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
841	* testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
842	Likewise.
843	* testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
844	Likewise.
845	* testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
846	Likewise.
847	* testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
848	void* to avoid compiler warning.
849	(main): Likewise.
850	(cls_struct_align_gn): Mark cif and userdata unused.
851	* testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
852	Likewise.
853	* testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
854	Likewise.
855	* testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
856	Likewise.
857	* testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
858	Likewise.
859	* testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
860	Likewise.
861	* testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
862	* testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
863	* testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
864	data unused.
865	(main): Cast res_call to silence gcc.
866	* testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
867	data unused.
868	(main): Cast res_call to silence gcc.
869	* testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
870	and data unused.
871	(main): Cast res_call to silence gcc.
872	* testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
873	data unused.
874	(main): Cast res_call to silence gcc.
875	* testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
876	data unused.
877	(main): Cast res_call to silence gcc.
878	* testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
879	and data unused.
880	(main): Cast res_call to silence gcc.
881	* testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
882	userdata unused.
883	(cls_ret_schar_fn): Cast printf parameter to silence gcc.
884	* testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
885	userdata unused.
886	(cls_ret_sint_fn): Cast printf parameter to silence gcc.
887	* testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
888	userdata unused.
889	(cls_ret_sshort_fn): Cast printf parameter to silence gcc.
890	* testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn):  Mark cif and
891	userdata unused.
892	(cls_ret_uchar_fn): Cast printf parameter to silence gcc.
893	* testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
894	userdata unused.
895	(cls_ret_uint_fn): Cast printf parameter to silence gcc.
896	* testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
897	and userdata unused.
898	* testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
899	userdata unused.
900	(cls_ret_ushort_fn): Cast printf parameter to silence gcc.
901	* testsuite/libffi.call/float.c (floating): Remove unused parameter e.
902	* testsuite/libffi.call/float1.c (main): Remove unused variable i.
903	Cleanup white spaces.
904	* testsuite/libffi.call/negint.c (checking): Remove unused variable i.
905	* testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
906	cif and userdata unused.
907	* testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
908	Likewise.
909	* testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
910	* testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
911	formatters to silence gcc.
912	(B_gn): Mark cif and userdata unused.
913	* testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
914	unused.
915	* testsuite/libffi.call/nested_struct4.c: Mention related PR.
916	(B_gn): Mark cif and userdata unused.
917	* testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
918	unused.
919	* testsuite/libffi.call/nested_struct6.c: Mention related PR.
920	(B_gn): Mark cif and userdata unused.
921	* testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
922	unused.
923	* testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
924	* testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
925	* testsuite/libffi.call/problem1.c (stub): Likewise.
926	* testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
927	gcc.
928	* testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
929	in the last commit for this test case in the test case itself.
930	* testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
931	unused.
932	* testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
933	* testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
934	* testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
935	* testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
936	* testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
937	* testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
938
9392006-02-22  Kaz Kojima  <kkojima@gcc.gnu.org>
940
941	* src/sh/sysv.S: Fix register numbers in the FDE for
942	ffi_closure_SYSV.
943
9442006-02-20  Andreas Tobler  <a.tobler@schweiz.ch>
945
946	* testsuite/libffi.call/return_fl2.c (return_fl): Remove static
947	declaration to avoid a false negative on ix86. See PR323.
948
9492006-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
950
951	* src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
952	and cast integer to void * if needed.  Update the pointer to
953	the FP register saved area correctly.
954
9552006-02-17  Andreas Tobler  <a.tobler@schweiz.ch>
956
957	* testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
958	is fixed.
959	* testsuite/libffi.call/nested_struct4.c: Likewise.
960
9612006-02-16  Andreas Tobler  <a.tobler@schweiz.ch>
962
963	* testsuite/libffi.call/return_dbl.c: New test case.
964	* testsuite/libffi.call/return_dbl1.c: Likewise.
965	* testsuite/libffi.call/return_dbl2.c: Likewise.
966	* testsuite/libffi.call/return_fl.c: Likewise.
967	* testsuite/libffi.call/return_fl1.c: Likewise.
968	* testsuite/libffi.call/return_fl2.c: Likewise.
969	* testsuite/libffi.call/return_fl3.c: Likewise.
970	* testsuite/libffi.call/closure_fn6.c: Likewise.
971
972	* testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
973	definition.
974	* testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
975	here to be used by other test cases too.
976
977	* testsuite/libffi.call/nested_struct10.c: New test case.
978	* testsuite/libffi.call/nested_struct9.c: Likewise.
979	* testsuite/libffi.call/nested_struct8.c: Likewise.
980	* testsuite/libffi.call/nested_struct7.c: Likewise.
981	* testsuite/libffi.call/nested_struct6.c: Likewise.
982	* testsuite/libffi.call/nested_struct5.c: Likewise.
983	* testsuite/libffi.call/nested_struct4.c: Likewise.
984
9852006-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
986
987	* configure.ac: Enable libffi for sparc64-*-freebsd*.
988	* configure: Rebuilt.
989
9902006-01-18  Jakub Jelinek  <jakub@redhat.com>
991
992	* src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
993	instead do the shifting inline.
994	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
995	shift count unconditionally.  Simplify load sequences for 1, 2, 3, 4
996	and 8 byte structs, for the remaining struct sizes don't call
997	__lshrdi3, instead do the shifting inline.
998
9992005-12-07  Thiemo Seufer  <ths@networkno.de>
1000
1001	* src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
1002	missing parentheses.
1003	* src/mips/o32.S (ffi_call_O32): Code formatting. Define
1004	and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
1005	(ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
1006	A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
1007	V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
1008	FA_0_0_OFF2.
1009	* src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
1010	endianness bugs.
1011	(ffi_prep_closure): Improve trampoline instruction scheduling.
1012	(ffi_closure_mips_inner_O32): Fix endianness bugs.
1013
10142005-12-03  Alan Modra  <amodra@bigpond.net.au>
1015
1016	* src/powerpc/ffi.c: Formatting.
1017	(ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
1018	(ffi_prep_args64): Likewise.
1019
10202005-09-30  Geoffrey Keating  <geoffk@apple.com>
1021
1022	* testsuite/lib/libffi-dg.exp (libffi_target_compile): For
1023	darwin, use -shared-libgcc not -lgcc_s, and explain why.
1024
10252005-09-26  Tom Tromey  <tromey@redhat.com>
1026
1027	* testsuite/libffi.call/float1.c (value_type): New typedef.
1028	(CANARY): New define.
1029	(main): Check for result buffer overflow.
1030	* src/powerpc/linux64.S: Handle linux64 long double returns.
1031	* src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
1032	(ffi_prep_cif_machdep): Handle linux64 long double returns.
1033
10342005-08-25  Alan Modra  <amodra@bigpond.net.au>
1035
1036	PR target/23404
1037	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
1038	homed fp args.
1039	(ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
1040
10412005-08-11  Jakub Jelinek  <jakub@redhat.com>
1042
1043	* configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
1044	(AH_BOTTOM): Add FFI_HIDDEN definition.
1045	* configure: Rebuilt.
1046	* fficonfig.h.in: Rebuilt.
1047	* src/powerpc/ffi.c (hidden): Remove.
1048	(ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
1049	ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
1050	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
1051	.ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
1052	* src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
1053	add FFI_HIDDEN to its prototype.
1054	(ffi_closure_SYSV_inner): New.
1055	* src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1056	* src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1057
10582005-08-10  Alfred M. Szmidt  <ams@gnu.org>
1059
1060	PR libffi/21819:
1061	* configure: Rebuilt.
1062	* configure.ac: Handle i*86-*-gnu*.
1063
10642005-08-09  Jakub Jelinek  <jakub@redhat.com>
1065
1066	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
1067	DW_CFA_offset_extended_sf rather than
1068	DW_CFA_GNU_negative_offset_extended.
1069	* src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
1070
10712005-07-22  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
1072
1073	* src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
1074	on sh3.
1075	(ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
1076	* src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
1077	partially on register.
1078	(ffi_closure_helper_SYSV): Likewise.
1079	(ffi_prep_cif_machdep): Don't set too many cif->flags.
1080
10812005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1082
1083	* src/sh/ffi.c (ffi_call): Handle small structures correctly.
1084	Remove empty line.
1085	* src/sh64/ffi.c (simple_type): Remove.
1086	(return_type): Handle small structures correctly.
1087	(ffi_prep_args): Likewise.
1088	(ffi_call): Likewise.
1089	(ffi_closure_helper_SYSV): Likewise.
1090	* src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
1091	Emit position independent code if PIC and remove wrong datalabel
1092	prefixes from EH data.
1093
10942005-07-19  Andreas Tobler  <a.tobler@schweiz.ch>
1095
1096	* Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
1097	* Makefile.in: Regenerate.
1098	* include/Makefile.in: Likewise.
1099	* testsuite/Makefile.in: Likewise.
1100	* configure.ac: Add POWERPC_FREEBSD rules.
1101	* configure: Regenerate.
1102	* src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
1103	(FFI_SYSV_TYPE_SMALL_STRUCT): Define.
1104	* src/powerpc/ffi.c: Add flags to handle small structure returns
1105	in ffi_call_SYSV.
1106	(ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
1107	Aka FFI_SYSV.
1108	(ffi_closure_helper_SYSV): Likewise.
1109	* src/powerpc/ppc_closure.S: Add return types for small structures.
1110	* src/powerpc/sysv.S: Add bits to handle small structures for
1111	final SYSV 4 ABI.
1112
11132005-07-10  Andreas Tobler  <a.tobler@schweiz.ch>
1114
1115	* testsuite/libffi.call/cls_5_1_byte.c: New test file.
1116	* testsuite/libffi.call/cls_6_1_byte.c: Likewise.
1117	* testsuite/libffi.call/cls_7_1_byte.c: Likewise.
1118
11192005-07-05  Randolph Chung  <tausq@debian.org>
1120
1121	* src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
1122	as FFI_TYPE_SMALL_STRUCT3.  Break out handling for 5-7 byte
1123	structures.  Kill compilation warnings.
1124	(ffi_closure_inner_LINUX): Print return values as hex in debug
1125	message.  Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
1126	Properly handle 5-7 byte structure returns.
1127	* src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
1128	(FFI_TYPE_SMALL_STRUCT2): Remove.
1129	(FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
1130	(FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
1131	* src/pa/linux.S: Mark source file as using PA1.1 assembly.
1132	(checksmst1, checksmst2): Remove.
1133	(checksmst3): Optimize handling of 3-byte struct returns.
1134	(checksmst567): Properly handle 5-7 byte struct returns.
1135
11362005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1137
1138	PR libgcj/21943
1139	* src/mips/n32.S: Enforce PIC code.
1140	* src/mips/o32.S: Likewise.
1141
11422005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1143
1144	* configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
1145	* configure: Regenerate.
1146
11472005-06-01  Alan Modra  <amodra@bigpond.net.au>
1148
1149	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
1150	to call ffi_closure_helper_SYSV.  Append @local instead.
1151	* src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
1152
11532005-05-17  Kelley Cook  <kcook@gcc.gnu.org>
1154
1155	* configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1156	Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1157	* Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
1158	* aclocal.m4, configure, fficonfig.h.in, Makefile.in,
1159	include/Makefile.in, testsuite/Makefile.in: Regenerate.
1160
11612005-05-09  Mike Stump  <mrs@apple.com>
1162
1163	* configure: Regenerate.
1164
11652005-05-08  Richard Henderson  <rth@redhat.com>
1166
1167	PR libffi/21285
1168	* src/alpha/osf.S: Update unwind into to match code.
1169
11702005-05-04  Andreas Degert <ad@papyrus-gmbh.de>
1171	    Richard Henderson  <rth@redhat.com>
1172
1173	* src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
1174	bit 11 of flags.
1175	(ffi_call): Mask return type field.  Pass ssecount to ffi_call_unix64.
1176	(ffi_prep_closure): Set carry bit if sse-used flag set.
1177	* src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
1178	Only load sse registers if ssecount non-zero.
1179	(ffi_closure_unix64): Only save sse registers if carry set on entry.
1180
11812005-04-29  Ralf Corsepius  <ralf.corsepius@rtems.org>
1182
1183	* configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
1184	powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
1185	* configure: Regenerate.
1186
11872005-04-20  Hans-Peter Nilsson  <hp@axis.com>
1188
1189	* testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
1190	have Tcl8.3-compatible intermediate variable.
1191
11922005-04-18  Simon Posnjak <simon.posnjak@siol.net>
1193	    Hans-Peter Nilsson  <hp@axis.com>
1194
1195	* Makefile.am: Add CRIS support.
1196	* configure.ac: Likewise.
1197	* Makefile.in, configure, testsuite/Makefile.in,
1198	include/Makefile.in: Regenerate.
1199	* src/cris: New directory.
1200	* src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
1201	* src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
1202
1203	* testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
1204	\r?\n in output tests.
1205
12062005-04-12  Mike Stump  <mrs@apple.com>
1207
1208	* configure: Regenerate.
1209
12102005-03-30  Hans Boehm  <Hans.Boehm@hp.com>
1211
1212	* src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
1213
12142005-03-30  Steve Ellcey  <sje@cup.hp.com>
1215
1216	* src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
1217	(ffi_sarg) Ditto.
1218	* src/ia64/unix.S (ffi_closure_unix): Extend gp
1219	to 64 bits in ILP32 mode.
1220	Load 64 bits even for short data.
1221
12222005-03-23  Mike Stump  <mrs@apple.com>
1223
1224	* src/powerpc/darwin.S: Update for -m64 multilib.
1225	* src/powerpc/darwin_closure.S: Likewise.
1226
12272005-03-21  Zack Weinberg  <zack@codesourcery.com>
1228
1229	* configure.ac: Do not invoke TL_AC_GCC_VERSION.
1230	Do not set tool_include_dir.
1231	* aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
1232	Regenerate.
1233	* include/Makefile.am: Set gcc_version and toollibffidir.
1234	* include/Makefile.in: Regenerate.
1235
12362005-02-22  Andrew Haley  <aph@redhat.com>
1237
1238	* src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
1239	odd-numbered register pairs for 64-bit integer types.
1240
12412005-02-23  Andreas Tobler  <a.tobler@schweiz.ch>
1242
1243	PR libffi/20104
1244	* testsuite/libffi.call/return_ll1.c: New test case.
1245
12462005-02-11  Janis Johnson  <janis187@us.ibm.com>
1247
1248	* testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
1249	* testsuite/libffi.call/float.c: Ditto.
1250	* testsuite/libffi.call/float2.c: Ditto.
1251	* testsuite/libffi.call/float3.c: Ditto.
1252
12532005-02-08  Andreas Tobler  <a.tobler@schweiz.ch>
1254
1255	* src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
1256
12572005-01-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1258
1259	* testsuite/libffi.special/special.exp (cxx_options): Add
1260	-shared-libgcc.
1261
12622004-12-31  Richard Henderson  <rth@redhat.com>
1263
1264	* src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
1265	(FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF.  Replace size and
1266	offset parameters with a type parameter; deduce size and structure
1267	alignment.  Update all users.
1268
12692004-12-31  Richard Henderson  <rth@redhat.com>
1270
1271	* src/types.c (FFI_TYPE_POINTER): Define with sizeof.
1272	(FFI_TYPE_LONGDOUBLE): Fix for ia64.
1273	* src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
1274	into ffi_prep_closure.
1275	* src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
1276	from scratch.
1277
12782004-12-27  Richard Henderson  <rth@redhat.com>
1279
1280	* src/x86/unix64.S: Fix typo in unwind info.
1281
12822004-12-25  Richard Henderson  <rth@redhat.com>
1283
1284	* src/x86/ffi64.c (struct register_args): Rename from stackLayout.
1285	(enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
1286	(merge_classes): Check for it.
1287	(SSE_CLASS_P): New.
1288	(classify_argument): Pass byte_offset by value; perform all updates
1289	inside struct case.
1290	(examine_argument): Add classes argument; handle
1291	X86_64_COMPLEX_X87_CLASS.
1292	(ffi_prep_args): Merge into ...
1293	(ffi_call): ... here.  Share stack frame with ffi_call_unix64.
1294	(ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
1295	(ffi_fill_return_value): Remove.
1296	(ffi_prep_closure): Remove dead assert.
1297	(ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
1298	Rewrite to use struct register_args instead of va_list.  Create
1299	flags for handling structure returns.
1300	* src/x86/unix64.S: Remove dead strings.
1301	(ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
1302	stack frame with ffi_call.  Handle structure returns properly.
1303	(float2sse, floatfloat2sse, double2sse): Remove.
1304	(sse2float, sse2double, sse2floatfloat): Remove.
1305	(ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
1306	to handle structure returns properly.
1307
13082004-12-08  David Edelsohn  <edelsohn@gnu.org>
1309
1310	* Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
1311	PICFLAG.
1312	* Makefile.in: Regenerated.
1313
13142004-12-02  Richard Sandiford  <rsandifo@redhat.com>
1315
1316	* configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
1317	* configure, aclocal.m4, Makefile.in: Regenerate.
1318	* include/Makefile.in, testsuite/Makefile.in: Regenerate.
1319
13202004-11-29  Kelley Cook  <kcook@gcc.gnu.org>
1321
1322	* configure: Regenerate for libtool change.
1323
13242004-11-25  Kelley Cook  <kcook@gcc.gnu.org>
1325
1326	* configure: Regenerate for libtool reversion.
1327
13282004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
1329
1330	* configure: Regenerate for libtool change.
1331
13322004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1333
1334	* testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
1335
13362004-11-23  Richard Sandiford  <rsandifo@redhat.com>
1337
1338	* src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
1339	of jal.  Use an absolute encoding for the frame information.
1340
13412004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
1342
1343	* Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
1344	* acinclude.m4: Delete logic for sincludes.
1345	* aclocal.m4, Makefile.in, configure: Regenerate.
1346	* include/Makefile: Likewise.
1347	* testsuite/Makefile: Likewise.
1348
13492004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1350
1351	* src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
1352	on a 8-byte boundary.
1353	* src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
1354
13552004-10-27  Richard Earnshaw  <rearnsha@arm.com>
1356
1357	* src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
1358	long long values.  Round stack allocation to a multiple of 8 bytes
1359	for ATPCS compatibility.
1360	* src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
1361	names.  Handle returning long long types.  Add Thumb and interworking
1362	support.  Improve soft-float code.
1363
13642004-10-27  Richard Earnshaw  <rearnsha@arm.com>
1365
1366	* testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
1367	(libffi_exit): New function.
1368	(libffi_init): Build the testglue wrapper if needed.
1369
13702004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1371
1372	PR other/18138
1373	* testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
1374
13752004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1376
1377	* src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
1378
13792004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1380
1381	* src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
1382	* testsuite/libffi.call/float3.c: New test case.
1383
13842004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1385
1386	* src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
1387	the function returning a structure pointed with R2.
1388	* src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
1389	the structure return value if T bit set.  Emit position
1390	independent code and EH data if PIC.
1391
13922004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1393
1394	* Makefile.am: Add m32r support.
1395	* configure.ac: Likewise.
1396	* Makefile.in: Regenerate.
1397	* confiugre: Regenerate.
1398	* src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
1399	(uint64, sint64, double, longdouble)
1400	* src/m32r: New directory.
1401	* src/m32r/ffi.c: New file.
1402	* src/m32r/sysv.S: Likewise.
1403	* src/m32r/ffitarget.h: Likewise.
1404
14052004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1406
1407	* testsuite/libffi.call/negint.c: New test case.
1408
14092004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
1410
1411	PR libgcj/17465
1412	* testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
1413	Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
1414	LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
1415	DYLD_LIBRARY_PATH.
1416
14172004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
1418
1419	* testsuite/libffi.call/many_win32.c: Remove whitespaces.
1420	* testsuite/libffi.call/promotion.c: Likewise.
1421	* testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
1422	whitespaces.
1423	* testsuite/libffi.call/return_sc.c: Likewise.
1424	* testsuite/libffi.call/return_uc.c: Likewise.
1425
14262004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
1427
1428	* src/powerpc/darwin.S: Fix comments and identation.
1429	* src/powerpc/darwin_closure.S: Likewise.
1430
14312004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
1432
1433	* src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
1434	(ffi_prep_args): Handle longdouble arguments.
1435	(ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
1436	longdouble.
1437	(ffi_closure_helper_DARWIN): Add closure handling for longdouble.
1438	* src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
1439	values.
1440	* src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
1441	* src/types.c: Defined longdouble size and alignment for darwin.
1442
14432004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
1444
1445	* src/powerpc/aix.S: Remove whitespaces.
1446	* src/powerpc/aix_closure.S: Likewise.
1447	* src/powerpc/asm.h: Likewise.
1448	* src/powerpc/ffi.c: Likewise.
1449	* src/powerpc/ffitarget.h: Likewise.
1450	* src/powerpc/linux64.S: Likewise.
1451	* src/powerpc/linux64_closure.S: Likewise.
1452	* src/powerpc/ppc_closure.S: Likewise.
1453	* src/powerpc/sysv.S: Likewise.
1454
14552004-08-30  Anthony Green  <green@redhat.com>
1456
1457	* Makefile.am: Add frv support.
1458	* Makefile.in, testsuite/Makefile.in: Rebuilt.
1459	* configure.ac: Read configure.host.
1460	* configure.in: Read configure.host.
1461	* configure.host: New file.  frv-elf needs libgloss.
1462	* include/ffi.h.in: Force ffi_closure to have a nice big (8)
1463	alignment.  This is needed to frv and shouldn't harm the others.
1464	* include/ffi_common.h (ALIGN_DOWN): New macro.
1465	* src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
1466
14672004-08-24  David Daney  <daney@avtrex.com>
1468
1469	* testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
1470	* testsuite/libffi.call/closure_fn1.c: Likewise.
1471	* testsuite/libffi.call/closure_fn2.c  Likewise.
1472	* testsuite/libffi.call/closure_fn3.c: Likewise.
1473	* testsuite/libffi.call/closure_fn4.c: Likewise.
1474	* testsuite/libffi.call/closure_fn5.c: Likewise.
1475	* testsuite/libffi.call/cls_18byte.c: Likewise.
1476	* testsuite/libffi.call/cls_19byte.c: Likewise.
1477	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
1478	* testsuite/libffi.call/cls_20byte.c: Likewise.
1479	* testsuite/libffi.call/cls_20byte1.c: Likewise.
1480	* testsuite/libffi.call/cls_24byte.c: Likewise.
1481	* testsuite/libffi.call/cls_2byte.c: Likewise.
1482	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
1483	* testsuite/libffi.call/cls_3byte1.c: Likewise.
1484	* testsuite/libffi.call/cls_3byte2.c: Likewise.
1485	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
1486	* testsuite/libffi.call/cls_4byte.c: Likewise.
1487	* testsuite/libffi.call/cls_64byte.c: Likewise.
1488	* testsuite/libffi.call/cls_6byte.c: Likewise.
1489	* testsuite/libffi.call/cls_7byte.c: Likewise.
1490	* testsuite/libffi.call/cls_8byte.c: Likewise.
1491	* testsuite/libffi.call/cls_9byte1.c: Likewise.
1492	* testsuite/libffi.call/cls_9byte2.c: Likewise.
1493	* testsuite/libffi.call/cls_align_double.c: Likewise.
1494	* testsuite/libffi.call/cls_align_float.c: Likewise.
1495	* testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1496	* testsuite/libffi.call/cls_align_pointer.c: Likewise.
1497	* testsuite/libffi.call/cls_align_sint16.c: Likewise.
1498	* testsuite/libffi.call/cls_align_sint32.c: Likewise.
1499	* testsuite/libffi.call/cls_align_sint64.c: Likewise.
1500	* testsuite/libffi.call/cls_align_uint16.c: Likewise.
1501	* testsuite/libffi.call/cls_align_uint32.c: Likewise.
1502	* testsuite/libffi.call/cls_align_uint64.c: Likewise.
1503	* testsuite/libffi.call/cls_double.c: Likewise.
1504	* testsuite/libffi.call/cls_float.c: Likewise.
1505	* testsuite/libffi.call/cls_multi_schar.c: Likewise.
1506	* testsuite/libffi.call/cls_multi_sshort.c: Likewise.
1507	* testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1508	* testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1509	* testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1510	* testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1511	* testsuite/libffi.call/cls_schar.c: Likewise.
1512	* testsuite/libffi.call/cls_sint.c: Likewise.
1513	* testsuite/libffi.call/cls_sshort.c: Likewise.
1514	* testsuite/libffi.call/cls_uchar.c: Likewise.
1515	* testsuite/libffi.call/cls_uint.c: Likewise.
1516	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
1517	* testsuite/libffi.call/cls_ushort.c: Likewise.
1518	* testsuite/libffi.call/nested_struct.c: Likewise.
1519	* testsuite/libffi.call/nested_struct1.c: Likewise.
1520	* testsuite/libffi.call/nested_struct2.c: Likewise.
1521	* testsuite/libffi.call/nested_struct3.c: Likewise.
1522	* testsuite/libffi.call/problem1.c: Likewise.
1523	* testsuite/libffi.special/unwindtest.cc: Likewise.
1524	* testsuite/libffi.call/cls_12byte.c: Likewise and set return value
1525	to zero.
1526	* testsuite/libffi.call/cls_16byte.c: Likewise.
1527	* testsuite/libffi.call/cls_5byte.c: Likewise.
1528
15292004-08-23  David Daney <daney@avtrex.com>
1530
1531	PR libgcj/13141
1532	* src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
1533	* src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
1534	(ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
1535	parameters and return types.
1536	(ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
1537	(ffi_prep_closure): Ditto.
1538	(ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
1539	alignment calculations.
1540	* src/mips/o32.S (ffi_closure_O32): Don't use floating point
1541	instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
1542
15432004-08-14  Casey Marshall <csm@gnu.org>
1544
1545	* src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
1546	contain `FFI_TYPE_UINT64' as return type for any 64-bit
1547	integer (O32 ABI only).
1548	(ffi_prep_closure): new function.
1549	(ffi_closure_mips_inner_O32): new function.
1550	* src/mips/ffitarget.h: Define `FFI_CLOSURES' and
1551	`FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
1552	* src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
1553	64 bit integers correctly.
1554	(ffi_closure_O32): new function.
1555	Added DWARF-2 unwind info for both functions.
1556
15572004-08-10  Andrew Haley  <aph@redhat.com>
1558
1559	* src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
1560
15612004-08-01  Robert Millan  <robertmh@gnu.org>
1562
1563	* configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
1564	* configure: Regenerate.
1565
15662004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
1567
1568	* acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
1569	and mmap() explicitly instead of relying on preset autoconf cache
1570	variables.
1571	* aclocal.m4: Regenerate.
1572	* configure: Regenerate.
1573
15742004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
1575
1576	* src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
1577	(ffi_check_float_struct): Remove unused prototype.
1578
15792004-06-30  Geoffrey Keating  <geoffk@apple.com>
1580
1581	* src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
1582	character on Darwin, use '\n\t' instead.
1583
15842004-06-26  Matthias Klose  <doko@debian.org>
1585
1586	* libtool-version: Fix typo in revision/age.
1587
15882004-06-17  Matthias Klose  <doko@debian.org>
1589
1590	* libtool-version: New.
1591	* Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
1592	* Makefile.in: Regenerate.
1593
15942004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1595
1596	* Makefile.am: Remove useless multilib rules.
1597	* Makefile.in: Regenerate.
1598	* aclocal.m4: Regenerate with automake 1.8.5.
1599	* configure.ac: Remove useless multilib configury.
1600	* configure: Regenerate.
1601
16022004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1603
1604	* .cvsignore: New file.
1605
16062004-06-10  Jakub Jelinek  <jakub@redhat.com>
1607
1608	* src/ia64/unix.S (ffi_call_unix): Insert group barrier break
1609	fp_done.
1610	(ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
1611	changed from 8.
1612
16132004-06-06  Sean McNeil  <sean@mcneil.com>
1614
1615	* configure.ac: Add x86_64-*-freebsd* support.
1616	* configure: Regenerate.
1617
16182004-04-26  Joe Buck <jbuck@welsh-buck.org>
1619
1620	Bug 15093
1621	* configure.ac: Test for existence of mmap and sys/mman.h before
1622	checking blacklist.  Fix suggested by Jim Wilson.
1623	* configure: Regenerate.
1624
16252004-04-26  Matt Austern  <austern@apple.com>
1626
1627	* src/powerpc/darwin.S: Go through a non-lazy pointer for initial
1628	FDE location.
1629	* src/powerpc/darwin_closure.S: Likewise.
1630
16312004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
1632
1633	* testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
1634	error. Reported by Thomas Heller <theller@python.net>.
1635	* testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
1636	* testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
1637
16382004-03-20  Matthias Klose  <doko@debian.org>
1639
1640	* src/pa/linux.S: Fix typo.
1641
16422004-03-19  Matthias Klose  <doko@debian.org>
1643
1644	* Makefile.am: Update.
1645	* Makefile.in: Regenerate.
1646	* src/pa/ffi.h.in: Remove.
1647	* src/pa/ffitarget.h: New file.
1648
16492004-02-10  Randolph Chung  <tausq@debian.org>
1650
1651	* Makefile.am: Add PA support.
1652	* Makefile.in: Regenerate.
1653	* include/Makefile.in: Regenerate.
1654	* configure.ac: Add PA target.
1655	* configure: Regenerate.
1656	* src/pa/ffi.c: New file.
1657	* src/pa/ffi.h.in: Add PA support.
1658	* src/pa/linux.S: New file.
1659	* prep_cif.c: Add PA support.
1660
16612004-03-16  Hosaka Yuji  <hos@tamanegi.org>
1662
1663	* src/types.c: Fix alignment size of X86_WIN32 case int64 and
1664	double.
1665	* src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
1666	with ecif->cif->flags.
1667	(ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
1668	with cif->flags.
1669	(ffi_prep_cif_machdep): Add X86_WIN32 struct case.
1670	(ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
1671	* src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
1672	sc_retstruct2b): Add for 1 or 2-bytes struct case.
1673
16742004-03-15 Kelley Cook <kcook@gcc.gnu.org>
1675
1676	* configure.in: Rename file to ...
1677	* configure.ac: ... this.
1678	* fficonfig.h.in: Regenerate.
1679	* Makefile.in: Regenerate.
1680	* include/Makefile.in: Regenerate.
1681	* testsuite/Makefile.in: Regenerate.
1682
16832004-03-12  Matt Austern  <austern@apple.com>
1684
1685	* src/powerpc/darwin.S: Fix EH information so it corresponds to
1686	changes in EH format resulting from addition of linkonce support.
1687	* src/powerpc/darwin_closure.S: Likewise.
1688
16892004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
1690	    Paolo Bonzini  <bonzini@gnu.org>
1691
1692	* Makefile.am (AUTOMAKE_OPTIONS): Set them.
1693	Remove VPATH. Remove rules for object files. Remove multilib support.
1694	(AM_CCASFLAGS): Add.
1695	* configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
1696	(AC_PREREQ): Bump version to 2.59.
1697	(AC_INIT): Fill with version info and bug address.
1698	(ORIGINAL_LD_FOR_MULTILIBS): Remove.
1699	(AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
1700	De-precious CC so that the right flags are passed down to multilibs.
1701	(AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
1702	(AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
1703	(AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
1704	* configure: Rebuilt.
1705	* aclocal.m4: Likewise.
1706	* Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
1707	* fficonfig.h.in: Likewise.
1708
17092004-03-11  Andreas Schwab  <schwab@suse.de>
1710
1711	* src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
1712	arguments from fp registers only for the first 8 parameter slots.
1713	Don't convert a float parameter when passed in memory.
1714
17152004-03-09  Hans-Peter Nilsson  <hp@axis.com>
1716
1717	* configure: Regenerate for config/accross.m4 correction.
1718
17192004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
1720
1721	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
1722	ecif->cif->bytes to bytes.
1723	(ffi_prep_cif_machdep): Add braces around nested if statement.
1724
17252004-02-09  Alan Modra  <amodra@bigpond.net.au>
1726
1727	* src/types.c (pointer): POWERPC64 has 8 byte pointers.
1728
1729	* src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
1730	(ffi_closure_helper_LINUX64): Fix typo.
1731	* testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
1732	for powerpc64-*-*.
1733	* testsuite/libffi.call/float.c: Likewise.
1734	* testsuite/libffi.call/float2.c: Likewise.
1735
17362004-02-08  Alan Modra  <amodra@bigpond.net.au>
1737
1738	* src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
1739	long double function return and long double arg handling.
1740	(ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
1741	Use "end_pfr" instead of "nf".  Correct long double handling.
1742	Localise "temp".
1743	* src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
1744	return value.
1745	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
1746	space for long double return value.  Adjust stack frame and offsets.
1747	Load f2 long double return.
1748
17492004-02-07  Alan Modra  <amodra@bigpond.net.au>
1750
1751	* src/types.c: Use 16 byte long double for POWERPC64.
1752
17532004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1754
1755	* src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
1756	when the structure return address is passed in %o0.
1757	(ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
1758	(ffi_v9_layout_struct): Align the field following a nested structure
1759	on a word boundary.  Use memmove instead of memcpy.
1760	(ffi_call): Update call to ffi_V9_return_struct.
1761	(ffi_prep_closure): Define 'ctx' only for V8.
1762	(ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
1763	and ffi_closure_sparc_inner_v9.
1764	(ffi_closure_sparc_inner_v8): Return long doubles by reference.
1765	Always skip the structure return address.  For structures and long
1766	doubles, copy the argument directly.
1767	(ffi_closure_sparc_inner_v9): Skip the structure return address only
1768	if required.  Shift the maximum floating-point slot accordingly.  For
1769	big structures, copy the argument directly; otherwise, left-justify the
1770	argument and call ffi_v9_layout_struct to lay out the structure on
1771	the stack.
1772	* src/sparc/v8.S: Undef STACKFRAME before defining it.
1773	(ffi_closure_v8): Pass the structure return address.  Update call to
1774	ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
1775	Skip the 'unimp' insn when returning long doubles and structures.
1776	* src/sparc/v9.S: Undef STACKFRAME before defining it.
1777	(ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
1778	FFI_TYPE_INT handling.  Load structures both in integers and
1779	floating-point registers on return.
1780	* README: Update status of the SPARC port.
1781
17822004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
1783
1784	* testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
1785	as of type ffi_arg.
1786	* testsuite/libffi.call/struct3.c (main): Fix CHECK.
1787
17882004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
1789
1790	* testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
1791	value as of type ffi_arg, not unsigned int.
1792
17932004-01-21  Michael Ritzert  <ritzert@t-online.de>
1794
1795	* ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
1796	of the LHS.
1797
17982004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
1799
1800	* testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
1801	Solaris.
1802
18032004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1804
1805	* testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
1806	to void *.
1807
18082003-12-10  Richard Henderson  <rth@redhat.com>
1809
1810	* testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
1811	size_t instead of int.
1812
18132003-12-04  Hosaka Yuji  <hos@tamanegi.org>
1814
1815	* testsuite/libffi.call/many_win32.c: Include <float.h>.
1816	* testsuite/libffi.call/many_win32.c (main): Replace variable
1817	int i with unsigned long ul.
1818
1819	* testsuite/libffi.call/cls_align_uint64.c: New test case.
1820	* testsuite/libffi.call/cls_align_sint64.c: Likewise.
1821	* testsuite/libffi.call/cls_align_uint32.c: Likewise.
1822	* testsuite/libffi.call/cls_align_sint32.c: Likewise.
1823	* testsuite/libffi.call/cls_align_uint16.c: Likewise.
1824	* testsuite/libffi.call/cls_align_sint16.c: Likewise.
1825	* testsuite/libffi.call/cls_align_float.c: Likewise.
1826	* testsuite/libffi.call/cls_align_double.c: Likewise.
1827	* testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1828	* testsuite/libffi.call/cls_align_pointer.c: Likewise.
1829
18302003-12-02  Hosaka Yuji  <hos@tamanegi.org>
1831
1832	PR other/13221
1833	* src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
1834	Align arguments to 32 bits.
1835
18362003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
1837
1838	PR other/13221
1839	* testsuite/libffi.call/cls_multi_sshort.c: New test case.
1840	* testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1841	* testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1842	* testsuite/libffi.call/cls_multi_schar.c: Likewise.
1843	* testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1844	* testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1845
1846	* testsuite/libffi.special/unwindtest.cc: Cosmetics.
1847
18482003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1849
1850	* testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
1851	* testsuite/libffi.special/ffitestcxx.h: Likewise.
1852
18532003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
1854
1855	* Makefile.in: Rebuilt.
1856	* configure: Likewise.
1857	* testsuite/libffi.special/unwindtest.cc: Convert the mmap to
1858	the right type.
1859
18602003-11-21  Andreas Jaeger  <aj@suse.de>
1861	    Andreas Tobler  <a.tobler@schweiz.ch>
1862
1863	* acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
1864	* configure.in: Call AC_FUNC_MMAP_BLACKLIST.
1865	* Makefile.in: Rebuilt.
1866	* aclocal.m4: Likewise.
1867	* configure: Likewise.
1868	* fficonfig.h.in: Likewise.
1869	* testsuite/lib/libffi-dg.exp: Add include dir.
1870	* testsuite/libffi.call/ffitest.h: Add MMAP definitions.
1871	* testsuite/libffi.special/ffitestcxx.h: Likewise.
1872	* testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
1873	for ffi_closure if available.
1874	* testsuite/libffi.call/closure_fn1.c: Likewise.
1875	* testsuite/libffi.call/closure_fn2.c: Likewise.
1876	* testsuite/libffi.call/closure_fn3.c: Likewise.
1877	* testsuite/libffi.call/closure_fn4.c: Likewise.
1878	* testsuite/libffi.call/closure_fn5.c: Likewise.
1879	* testsuite/libffi.call/cls_12byte.c: Likewise.
1880	* testsuite/libffi.call/cls_16byte.c: Likewise.
1881	* testsuite/libffi.call/cls_18byte.c: Likewise.
1882	* testsuite/libffi.call/cls_19byte.c: Likewise.
1883	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
1884	* testsuite/libffi.call/cls_20byte.c: Likewise.
1885	* testsuite/libffi.call/cls_20byte1.c: Likewise.
1886	* testsuite/libffi.call/cls_24byte.c: Likewise.
1887	* testsuite/libffi.call/cls_2byte.c: Likewise.
1888	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
1889	* testsuite/libffi.call/cls_3byte1.c: Likewise.
1890	* testsuite/libffi.call/cls_3byte2.c: Likewise.
1891	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
1892	* testsuite/libffi.call/cls_4byte.c: Likewise.
1893	* testsuite/libffi.call/cls_5byte.c: Likewise.
1894	* testsuite/libffi.call/cls_64byte.c: Likewise.
1895	* testsuite/libffi.call/cls_6byte.c: Likewise.
1896	* testsuite/libffi.call/cls_7byte.c: Likewise.
1897	* testsuite/libffi.call/cls_8byte.c: Likewise.
1898	* testsuite/libffi.call/cls_9byte1.c: Likewise.
1899	* testsuite/libffi.call/cls_9byte2.c: Likewise.
1900	* testsuite/libffi.call/cls_double.c: Likewise.
1901	* testsuite/libffi.call/cls_float.c: Likewise.
1902	* testsuite/libffi.call/cls_schar.c: Likewise.
1903	* testsuite/libffi.call/cls_sint.c: Likewise.
1904	* testsuite/libffi.call/cls_sshort.c: Likewise.
1905	* testsuite/libffi.call/cls_uchar.c: Likewise.
1906	* testsuite/libffi.call/cls_uint.c: Likewise.
1907	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
1908	* testsuite/libffi.call/cls_ushort.c: Likewise.
1909	* testsuite/libffi.call/nested_struct.c: Likewise.
1910	* testsuite/libffi.call/nested_struct1.c: Likewise.
1911	* testsuite/libffi.call/nested_struct2.c: Likewise.
1912	* testsuite/libffi.call/nested_struct3.c: Likewise.
1913	* testsuite/libffi.call/problem1.c: Likewise.
1914	* testsuite/libffi.special/unwindtest.cc: Likewise.
1915
19162003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
1917
1918	* testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
1919
19202003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
1921
1922	* testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
1923	Add -lgcc_s to additional flags.
1924
19252003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
1926
1927	* configure.in, include/Makefile.am: PR libgcj/11147, install
1928	the ffitarget.h header file in a gcc versioned and target
1929	dependent place.
1930	* configure: Regenerated.
1931	* Makefile.in, include/Makefile.in: Likewise.
1932	* testsuite/Makefile.in: Likewise.
1933
19342003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
1935
1936	* testsuite/libffi.call/closure_fn0.c: Print result and check
1937	with dg-output to make debugging easier.
1938	* testsuite/libffi.call/closure_fn1.c: Likewise.
1939	* testsuite/libffi.call/closure_fn2.c: Likewise.
1940	* testsuite/libffi.call/closure_fn3.c: Likewise.
1941	* testsuite/libffi.call/closure_fn4.c: Likewise.
1942	* testsuite/libffi.call/closure_fn5.c: Likewise.
1943	* testsuite/libffi.call/cls_12byte.c: Likewise.
1944	* testsuite/libffi.call/cls_16byte.c: Likewise.
1945	* testsuite/libffi.call/cls_18byte.c: Likewise.
1946	* testsuite/libffi.call/cls_19byte.c: Likewise.
1947	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
1948	* testsuite/libffi.call/cls_20byte.c: Likewise.
1949	* testsuite/libffi.call/cls_20byte1.c: Likewise.
1950	* testsuite/libffi.call/cls_24byte.c: Likewise.
1951	* testsuite/libffi.call/cls_2byte.c: Likewise.
1952	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
1953	* testsuite/libffi.call/cls_3byte1.c: Likewise.
1954	* testsuite/libffi.call/cls_3byte2.c: Likewise.
1955	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
1956	* testsuite/libffi.call/cls_4byte.c: Likewise.
1957	* testsuite/libffi.call/cls_5byte.c: Likewise.
1958	* testsuite/libffi.call/cls_64byte.c: Likewise.
1959	* testsuite/libffi.call/cls_6byte.c: Likewise.
1960	* testsuite/libffi.call/cls_7byte.c: Likewise.
1961	* testsuite/libffi.call/cls_8byte.c: Likewise.
1962	* testsuite/libffi.call/cls_9byte1.c: Likewise.
1963	* testsuite/libffi.call/cls_9byte2.c: Likewise.
1964	* testsuite/libffi.call/cls_double.c: Likewise.
1965	* testsuite/libffi.call/cls_float.c: Likewise.
1966	* testsuite/libffi.call/cls_schar.c: Likewise.
1967	* testsuite/libffi.call/cls_sint.c: Likewise.
1968	* testsuite/libffi.call/cls_sshort.c: Likewise.
1969	* testsuite/libffi.call/cls_uchar.c: Likewise.
1970	* testsuite/libffi.call/cls_uint.c: Likewise.
1971	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
1972	* testsuite/libffi.call/cls_ushort.c: Likewise.
1973	* testsuite/libffi.call/problem1.c: Likewise.
1974
1975	* testsuite/libffi.special/unwindtest.cc: Make ffi_closure
1976	static.
1977
19782003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
1979
1980	* testsuite/libffi.call/cls_9byte2.c: New test case.
1981	* testsuite/libffi.call/cls_9byte1.c: Likewise.
1982	* testsuite/libffi.call/cls_64byte.c: Likewise.
1983	* testsuite/libffi.call/cls_20byte1.c: Likewise.
1984	* testsuite/libffi.call/cls_19byte.c: Likewise.
1985	* testsuite/libffi.call/cls_18byte.c: Likewise.
1986	* testsuite/libffi.call/closure_fn4.c: Likewise.
1987	* testsuite/libffi.call/closure_fn5.c: Likewise.
1988	* testsuite/libffi.call/cls_schar.c: Likewise.
1989	* testsuite/libffi.call/cls_sint.c: Likewise.
1990	* testsuite/libffi.call/cls_sshort.c: Likewise.
1991	* testsuite/libffi.call/nested_struct2.c: Likewise.
1992	* testsuite/libffi.call/nested_struct3.c: Likewise.
1993
19942003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
1995
1996	* testsuite/libffi.call/cls_double.c: Do a check on the result.
1997	* testsuite/libffi.call/cls_uchar.c: Likewise.
1998	* testsuite/libffi.call/cls_uint.c: Likewise.
1999	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
2000	* testsuite/libffi.call/cls_ushort.c: Likewise.
2001	* testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
2002
20032003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
2004
2005	* src/prep_cif.c (ffi_prep_cif): Move the validity check after
2006	the initialization.
2007
20082003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
2009
2010	* src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
2011	FFI_ASSERT(FALSE) with FFI_ASSERT(0).
2012
20132003-10-22  David Daney  <ddaney@avtrex.com>
2014
2015	* src/mips/ffitarget.h: Replace undefined UINT32 and friends with
2016	__attribute__((__mode__(__SI__))) and friends.
2017
20182003-10-22  Andreas Schwab  <schwab@suse.de>
2019
2020	* src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
2021
20222003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
2023
2024	* configure.in: AC_LINK_FILES(ffitarget.h).
2025	* configure: Regenerate.
2026	* Makefile.in: Likewise.
2027	* include/Makefile.in: Likewise.
2028	* testsuite/Makefile.in: Likewise.
2029	* fficonfig.h.in: Likewise.
2030
20312003-10-21  Paolo Bonzini  <bonzini@gnu.org>
2032	    Richard Henderson  <rth@redhat.com>
2033
2034	Avoid that ffi.h includes fficonfig.h.
2035
2036	* Makefile.am (EXTRA_DIST): Include ffitarget.h files
2037	(TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2038	(TARGET_SRC_MIPS_SGI): Removed.
2039	(MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2040	(MIPS_SGI): Removed.
2041	(CLEANFILES): Removed.
2042	(mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
2043	targets.
2044	* acconfig.h: Removed.
2045	* configure.in: Compute sizeofs only for double and long double.
2046	Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
2047	into AC_DEFINE instead of using acconfig.h.  Create
2048	include/ffitarget.h instead of include/fficonfig.h.  Rename
2049	MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
2050	AC_DEFINE EH_FRAME_FLAGS.
2051	* include/Makefile.am (DISTCLEANFILES): New automake macro.
2052	(hack_DATA): Add ffitarget.h.
2053	* include/ffi.h.in: Remove all system specific definitions.
2054	Declare raw API even if it is not installed, why bother?
2055	Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
2056	not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
2057	ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
2058	(UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
2059	* include/ffi_common.h (bool): Do not define.
2060	(ffi_assert): Accept failed assertion.
2061	(ffi_type_test): Return void and accept file/line.
2062	(FFI_ASSERT): Pass stringized failed assertion.
2063	(FFI_ASSERT_AT): New macro.
2064	(FFI_ASSERT_VALID_TYPE): New macro.
2065	(UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
2066	UINT64, SINT64): Define here with gcc's __attribute__ macro
2067	instead of in ffi.h
2068	(FLOAT32, ALIGN): Define here instead of in ffi.h
2069	* include/ffi-mips.h: Removed.  Its content moved to
2070	src/mips/ffitarget.h after separating assembly and C sections.
2071	* src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
2072	src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
2073	src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
2074	src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
2075	SIZEOF_ARG -> FFI_SIZEOF_ARG.
2076	* src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
2077	* src/debug.c (ffi_assert): Accept stringized failed assertion.
2078	(ffi_type_test): Rewritten.
2079	* src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
2080	FFI_ASSERT_VALID_TYPE.
2081	* src/alpha/ffitarget.h, src/arm/ffitarget.h,
2082	src/ia64/ffitarget.h, src/m68k/ffitarget.h,
2083	src/mips/ffitarget.h, src/powerpc/ffitarget.h,
2084	src/s390/ffitarget.h, src/sh/ffitarget.h,
2085	src/sh64/ffitarget.h, src/sparc/ffitarget.h,
2086	src/x86/ffitarget.h: New files.
2087	* src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
2088	src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
2089	src/powerpc/aix.S, src/powerpc/darwin.S,
2090	src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
2091	src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
2092	src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
2093	src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
2094	src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
2095	include fficonfig.h
2096
20972003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2098
2099	* src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
2100	_MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
2101
21022003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
2103
2104	* src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
2105	Used when FFI_DEBUG = 1.
2106
21072003-10-14  Alan Modra  <amodra@bigpond.net.au>
2108
2109	* src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
2110	and align.
2111
21122003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2113
2114	* include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
2115	FFI_MIPS_O32 for O32 ABI.
2116
21172003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
2118
2119	* testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
2120	SPARC64. Cleanup whitespaces.
2121
21222003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>
2123
2124	* testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
2125	strongarm, xscale. Cleanup whitespaces.
2126	* testsuite/libffi.call/closure_fn1.c: Likewise.
2127	* testsuite/libffi.call/closure_fn2.c: Likewise.
2128	* testsuite/libffi.call/closure_fn3.c: Likewise.
2129	* testsuite/libffi.call/cls_12byte.c: Likewise.
2130	* testsuite/libffi.call/cls_16byte.c: Likewise.
2131	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
2132	* testsuite/libffi.call/cls_20byte.c: Likewise.
2133	* testsuite/libffi.call/cls_24byte.c: Likewise.
2134	* testsuite/libffi.call/cls_2byte.c: Likewise.
2135	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
2136	* testsuite/libffi.call/cls_3byte1.c: Likewise.
2137	* testsuite/libffi.call/cls_3byte2.c: Likewise.
2138	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
2139	* testsuite/libffi.call/cls_4byte.c: Likewise.
2140	* testsuite/libffi.call/cls_5byte.c: Likewise.
2141	* testsuite/libffi.call/cls_6byte.c: Likewise.
2142	* testsuite/libffi.call/cls_7byte.c: Likewise.
2143	* testsuite/libffi.call/cls_8byte.c: Likewise.
2144	* testsuite/libffi.call/cls_double.c: Likewise.
2145	* testsuite/libffi.call/cls_float.c: Likewise.
2146	* testsuite/libffi.call/cls_uchar.c: Likewise.
2147	* testsuite/libffi.call/cls_uint.c: Likewise.
2148	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
2149	* testsuite/libffi.call/cls_ushort.c: Likewise.
2150	* testsuite/libffi.call/nested_struct.c: Likewise.
2151	* testsuite/libffi.call/nested_struct1.c: Likewise.
2152	* testsuite/libffi.call/problem1.c: Likewise.
2153	* testsuite/libffi.special/unwindtest.cc: Likewise.
2154	* testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
2155
21562003-09-18  David Edelsohn  <edelsohn@gnu.org>
2157
2158	* src/powerpc/aix.S: Cleanup whitespaces.
2159	* src/powerpc/aix_closure.S: Likewise.
2160
21612003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
2162
2163	* src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
2164	* src/powerpc/darwin_closure.S: Likewise.
2165	* src/powerpc/ffi_darwin.c: Likewise.
2166
21672003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
2168	    David Edelsohn  <edelsohn@gnu.org>
2169
2170	* src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
2171	* src/powerpc/aix_closure.S: Remove the pointer to the outgoing
2172	parameter stack.
2173	* src/powerpc/darwin_closure.S: Likewise.
2174	* src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
2175	according to the Darwin/AIX ABI.
2176	(ffi_prep_cif_machdep): Likewise.
2177	(ffi_closure_helper_DARWIN): Likewise.
2178	Remove the outgoing parameter stack logic. Simplify the evaluation
2179	of the different CASE types.
2180	(ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
2181	statement in the trampoline code.
2182
21832003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2184
2185	* src/sh/ffi.c (ffi_prep_args): Take account into the alignement
2186	for the register size.
2187	(ffi_closure_helper_SYSV): Handle the structure return value
2188	address correctly.
2189	(ffi_closure_helper_SYSV): Return the appropriate type when
2190	the registers are used for the structure return value.
2191	* src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
2192	the 64-bit return value.  Update copyright years.
2193
21942003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2195
2196	* testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
2197	srcdir for ffi_mips.h.
2198
21992003-09-12  Alan Modra  <amodra@bigpond.net.au>
2200
2201	* src/prep_cif.c (initialize_aggregate): Include tail padding in
2202	structure size.
2203	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
2204	placement of float result.
2205	* testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
2206	cast of "resp" for big-endian 64 bit machines.
2207
22082003-09-11  Alan Modra  <amodra@bigpond.net.au>
2209
2210	* src/types.c (double, longdouble): Merge identical SH and ARM
2211	typedefs, and add POWERPC64.
2212	* src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
2213	struct split over gpr and rest.
2214	(ffi_prep_cif_machdep): Correct intarg_count for structures.
2215	* src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
2216
22172003-09-09  Andreas Tobler  <a.tobler@schweiz.ch>
2218
2219	* src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
2220	passing correctly.
2221
22222003-09-09  Alan Modra  <amodra@bigpond.net.au>
2223
2224	* configure: Regenerate.
2225
22262003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
2227
2228	* Makefile.am: Remove build rules for ffitest.
2229	* Makefile.in: Rebuilt.
2230
22312003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
2232
2233	* src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
2234	about implicit declaration of abort().
2235
22362003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
2237
2238	* Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
2239	* Makefile.in: Rebuilt.
2240	* configure.in: Add dejagnu test framework.
2241	* configure: Rebuilt.
2242
2243	* testsuite/Makefile.am: New file.
2244	* testsuite/Makefile.in: Built
2245	* testsuite/lib/libffi-dg.exp: New file.
2246	* testsuite/config/default.exp: Likewise.
2247	* testsuite/libffi.call/call.exp: Likewise.
2248	* testsuite/libffi.call/ffitest.h: Likewise.
2249	* testsuite/libffi.call/closure_fn0.c: Likewise.
2250	* testsuite/libffi.call/closure_fn1.c: Likewise.
2251	* testsuite/libffi.call/closure_fn2.c: Likewise.
2252	* testsuite/libffi.call/closure_fn3.c: Likewise.
2253	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
2254	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
2255	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
2256	* testsuite/libffi.call/cls_2byte.c: Likewise.
2257	* testsuite/libffi.call/cls_3byte1.c: Likewise.
2258	* testsuite/libffi.call/cls_3byte2.c: Likewise.
2259	* testsuite/libffi.call/cls_4byte.c: Likewise.
2260	* testsuite/libffi.call/cls_5byte.c: Likewise.
2261	* testsuite/libffi.call/cls_6byte.c: Likewise.
2262	* testsuite/libffi.call/cls_7byte.c: Likewise.
2263	* testsuite/libffi.call/cls_8byte.c: Likewise.
2264	* testsuite/libffi.call/cls_12byte.c: Likewise.
2265	* testsuite/libffi.call/cls_16byte.c: Likewise.
2266	* testsuite/libffi.call/cls_20byte.c: Likewise.
2267	* testsuite/libffi.call/cls_24byte.c: Likewise.
2268	* testsuite/libffi.call/cls_double.c: Likewise.
2269	* testsuite/libffi.call/cls_float.c: Likewise.
2270	* testsuite/libffi.call/cls_uchar.c: Likewise.
2271	* testsuite/libffi.call/cls_uint.c: Likewise.
2272	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
2273	* testsuite/libffi.call/cls_ushort.c: Likewise.
2274	* testsuite/libffi.call/float.c: Likewise.
2275	* testsuite/libffi.call/float1.c: Likewise.
2276	* testsuite/libffi.call/float2.c: Likewise.
2277	* testsuite/libffi.call/many.c: Likewise.
2278	* testsuite/libffi.call/many_win32.c: Likewise.
2279	* testsuite/libffi.call/nested_struct.c: Likewise.
2280	* testsuite/libffi.call/nested_struct1.c: Likewise.
2281	* testsuite/libffi.call/pyobjc-tc.c: Likewise.
2282	* testsuite/libffi.call/problem1.c: Likewise.
2283	* testsuite/libffi.call/promotion.c: Likewise.
2284	* testsuite/libffi.call/return_ll.c: Likewise.
2285	* testsuite/libffi.call/return_sc.c: Likewise.
2286	* testsuite/libffi.call/return_uc.c: Likewise.
2287	* testsuite/libffi.call/strlen.c: Likewise.
2288	* testsuite/libffi.call/strlen_win32.c: Likewise.
2289	* testsuite/libffi.call/struct1.c: Likewise.
2290	* testsuite/libffi.call/struct2.c: Likewise.
2291	* testsuite/libffi.call/struct3.c: Likewise.
2292	* testsuite/libffi.call/struct4.c: Likewise.
2293	* testsuite/libffi.call/struct5.c: Likewise.
2294	* testsuite/libffi.call/struct6.c: Likewise.
2295	* testsuite/libffi.call/struct7.c: Likewise.
2296	* testsuite/libffi.call/struct8.c: Likewise.
2297	* testsuite/libffi.call/struct9.c: Likewise.
2298	* testsuite/libffi.special/special.exp: New file.
2299	* testsuite/libffi.special/ffitestcxx.h: Likewise.
2300	* testsuite/libffi.special/unwindtest.cc: Likewise.
2301
2302
23032003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2304
2305	* src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
2306	copyright years.
2307
23082003-08-02  Alan Modra  <amodra@bigpond.net.au>
2309
2310	* src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
2311	structure passing.
2312	(ffi_closure_helper_LINUX64): Likewise.
2313	* src/powerpc/linux64.S: Remove code writing to parm save area.
2314	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
2315	address in lr from ffi_closure_helper_LINUX64 call to calculate
2316	table address.  Optimize function tail.
2317
23182003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>
2319
2320	* src/sparc/ffi.c: Handle all floating point registers.
2321	* src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
2322
23232003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2324
2325	* README: Note that libffi is not part of GCC.  Update the project
2326	URL and status.
2327
23282003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2329
2330	* src/powerpc/ppc_closure.S: Include ffi.h.
2331
23322003-06-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2333
2334	* src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
2335	Use C style comments.
2336
23372003-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2338
2339	* Makefile.am: Add SHmedia support.  Fix a typo of SH support.
2340	* Makefile.in: Regenerate.
2341	* configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
2342	* configure: Regenerate.
2343	* include/ffi.h.in: Add SHmedia support.
2344	* src/sh64/ffi.c: New file.
2345	* src/sh64/sysv.S: New file.
2346
23472003-05-16  Jakub Jelinek  <jakub@redhat.com>
2348
2349	* configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
2350	should be read-only.
2351	* configure: Rebuilt.
2352	* fficonfig.h.in: Rebuilt.
2353	* include/ffi.h.in (EH_FRAME_FLAGS): Define.
2354	* src/alpha/osf.S: Use EH_FRAME_FLAGS.
2355	* src/powerpc/linux64.S: Likewise.
2356	* src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
2357	* src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
2358	if -fpic/-fPIC/-mrelocatable.
2359	* src/powerpc/powerpc_closure.S: Likewise.
2360	* src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
2361	#write in .eh_frame flags.
2362	* src/sparc/v9.S: Likewise.
2363	* src/x86/unix64.S: Use EH_FRAME_FLAGS.
2364	* src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
2365	* src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
2366
23672003-05-07  Jeff Sturm  <jsturm@one-point.com>
2368
2369	Fixes PR bootstrap/10656
2370	* configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
2371	support for .register pseudo-op.
2372	* src/sparc/v8.S: Use it.
2373	* fficonfig.h.in: Rebuilt.
2374	* configure: Rebuilt.
2375
23762003-04-18  Jakub Jelinek  <jakub@redhat.com>
2377
2378	* include/ffi.h.in (POWERPC64): Define if 64-bit.
2379	(enum ffi_abi): Add FFI_LINUX64 on POWERPC.
2380	Make it the default on POWERPC64.
2381	(FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
2382	* configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
2383	* configure: Rebuilt.
2384	* src/powerpc/ffi.c (hidden): Define.
2385	(ffi_prep_args_SYSV): Renamed from
2386	ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
2387	(NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
2388	ASM_NEEDS_REGISTERS64): New.
2389	(ffi_prep_args64): New function.
2390	(ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
2391	(ffi_call): Likewise.
2392	(ffi_prep_closure): Likewise.
2393	(flush_icache): Surround by #ifndef POWERPC64.
2394	(ffi_dblfl): New union type.
2395	(ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
2396	(ffi_closure_helper_LINUX64): New function.
2397	* src/powerpc/ppc_closure.S: Surround whole file by #ifndef
2398	__powerpc64__.
2399	* src/powerpc/sysv.S: Likewise.
2400	(ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
2401	* src/powerpc/linux64.S: New file.
2402	* src/powerpc/linux64_closure.S: New file.
2403	* Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
2404	src/powerpc/linux64_closure.S.
2405	(TARGET_SRC_POWERPC): Likewise.
2406
2407	* src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
2408	closure_test_fn3): Fix result printing on big-endian 64-bit
2409	machines.
2410	(main): Print tst2_arg instead of uninitialized tst2_result.
2411
2412	* src/ffitest.c (main): Hide what closure pointer really points to
2413	from the compiler.
2414
24152003-04-16  Richard Earnshaw  <rearnsha@arm.com>
2416
2417	* configure.in (arm-*-netbsdelf*): Add configuration.
2418	(configure): Regenerated.
2419
24202003-04-04  Loren J. Rittle  <ljrittle@acm.org>
2421
2422	* include/Makefile.in: Regenerate.
2423
24242003-03-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2425
2426	* libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
2427	bit mode.
2428	* libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
2429	Receive closure pointer through parameter, read args using
2430	__builtin_dwarf_cfa.
2431	(FFI_INIT_TRAMPOLINE): Send closure reference through eax.
2432
24332003-03-12  Andreas Schwab  <schwab@suse.de>
2434
2435	* configure.in: Avoid trailing /. in toolexeclibdir.
2436	* configure: Rebuilt.
2437
24382003-03-03  Andreas Tobler <a.tobler@schweiz.ch>
2439
2440	* src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
2441
24422003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
2443
2444	* libffi/src/powerpc/darwin_closure.S:
2445	Fix alignement bug, allocate 8 bytes for the result.
2446	* libffi/src/powerpc/aix_closure.S:
2447	Likewise.
2448	* libffi/src/powerpc/ffi_darwin.c:
2449	Update stackframe description for aix/darwin_closure.S.
2450
24512003-02-06  Jakub Jelinek  <jakub@redhat.com>
2452
2453	* src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
2454	attribute.
2455
24562003-01-31  Christian Cornelssen  <ccorn@cs.tu-berlin.de>,
2457	    Andreas Schwab  <schwab@suse.de>
2458
2459	* configure.in: Adjust command to source config-ml.in to account
2460	for changes to the libffi_basedir definition.
2461	(libffi_basedir): Remove ${srcdir} from value and include trailing
2462	slash if nonempty.
2463
2464	* configure: Regenerate.
2465
24662003-01-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2467
2468	* src/powerpc/ppc_closure.S: Recode to fit shared libs.
2469
24702003-01-28  Andrew Haley  <aph@redhat.com>
2471
2472	* include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
2473	* src/x86/ffi64.c (ffi_prep_closure): New.
2474	(ffi_closure_UNIX64_inner): New.
2475	* src/x86/unix64.S (ffi_closure_UNIX64): New.
2476
24772003-01-27  Alexandre Oliva  <aoliva@redhat.com>
2478
2479	* configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
2480	Remove USE_LIBDIR conditional.
2481	* Makefile.am (toolexecdir, toolexeclibdir): Don't override.
2482	* Makefile.in, configure: Rebuilt.
2483
24842003-01027  David Edelsohn  <edelsohn@gnu.org>
2485
2486	* Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
2487	* Makefile.in: Regenerate.
2488
24892003-01-22  Andrew Haley  <aph@redhat.com>
2490
2491	* src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
2492	unwind info.
2493
24942003-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
2495
2496	* src/powerpc/darwin.S: Add unwind info.
2497	* src/powerpc/darwin_closure.S: Likewise.
2498
24992003-01-14  Andrew Haley  <aph@redhat.com>
2500
2501	* src/x86/ffi64.c (ffi_prep_args): Check for void retval.
2502	(ffi_prep_cif_machdep): Likewise.
2503	* src/x86/unix64.S: Add unwind info.
2504
25052003-01-14  Andreas Jaeger  <aj@suse.de>
2506
2507	* src/ffitest.c (main): Only use ffi_closures if those are
2508	supported.
2509
25102003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
2511
2512	* libffi/src/ffitest.c
2513	 add closure testcases
2514
25152003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
2516
2517	* libffi/src/powerpc/ffi.c
2518	 fix alignment bug for float (4 byte aligned iso 8 byte)
2519
25202003-01-09  Geoffrey Keating  <geoffk@apple.com>
2521
2522	* src/powerpc/ffi_darwin.c: Remove RCS version string.
2523	* src/powerpc/darwin.S: Remove RCS version string.
2524
25252003-01-03  Jeff Sturm  <jsturm@one-point.com>
2526
2527	* include/ffi.h.in: Add closure defines for SPARC, SPARC64.
2528	* src/ffitest.c (main): Use static storage for closure.
2529	* src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
2530	* src/sparc/v8.S (ffi_closure_v8): New.
2531	* src/sparc/v9.S (ffi_closure_v9): New.
2532
25332002-11-10  Ranjit Mathew <rmathew@hotmail.com>
2534
2535	* include/ffi.h.in: Added FFI_STDCALL ffi_type
2536	  enumeration for X86_WIN32.
2537	* src/x86/win32.S: Added ffi_call_STDCALL function
2538	  definition.
2539	* src/x86/ffi.c (ffi_call/ffi_raw_call): Added
2540	  switch cases for recognising FFI_STDCALL and
2541	  calling ffi_call_STDCALL if target is X86_WIN32.
2542	* src/ffitest.c (my_stdcall_strlen/stdcall_many):
2543	  stdcall versions of the "my_strlen" and "many"
2544	  test functions (for X86_WIN32).
2545	  Added test cases to test stdcall invocation using
2546	  these functions.
2547
25482002-12-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2549
2550	* src/sh/sysv.S: Add DWARF2 unwind info.
2551
25522002-11-27  Ulrich Weigand  <uweigand@de.ibm.com>
2553
2554	* src/s390/sysv.S (.eh_frame section): Make section read-only.
2555
25562002-11-26  Jim Wilson  <wilson@redhat.com>
2557
2558	* src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
2559
25602002-11-23  H.J. Lu <hjl@gnu.org>
2561
2562	* acinclude.m4: Add dummy AM_PROG_LIBTOOL.
2563	Include ../config/accross.m4.
2564	* aclocal.m4; Rebuild.
2565	* configure: Likewise.
2566
25672002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
2568
2569	* src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
2570
25712002-11-11  DJ Delorie  <dj@redhat.com>
2572
2573	* configure.in: Look for common files in the right place.
2574
25752002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
2576
2577	* src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
2578	raw data as _Jv_word values, not ffi_raw.
2579	(ffi_java_ptrarray_to_raw): Likewise.
2580	(ffi_java_rvalue_to_raw): New function.
2581	(ffi_java_raw_call): Call it.
2582	(ffi_java_raw_to_rvalue): New function.
2583	(ffi_java_translate_args): Call it.
2584	* src/ffitest.c (closure_test_fn): Interpret return value
2585	as ffi_arg, not int.
2586	* src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
2587	FFI_TYPE_POINTER case.
2588	(ffi_closure_helper_SYSV): Likewise.  Also, assume return
2589	values extended to word size.
2590
25912002-10-02  Andreas Jaeger  <aj@suse.de>
2592
2593	* src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
2594
25952002-10-01  Bo Thorsen  <bo@smetana.suse.de>
2596
2597	* include/ffi.h.in: Fix i386 win32 compilation.
2598
25992002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2600
2601	* configure.in: Add s390x-*-linux-* target.
2602	* configure: Regenerate.
2603	* include/ffi.h.in: Define S390X for s390x targets.
2604	(FFI_CLOSURES): Define for s390/s390x.
2605	(FFI_TRAMPOLINE_SIZE): Likewise.
2606	(FFI_NATIVE_RAW_API): Likewise.
2607	* src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
2608	* src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
2609	* src/s390/ffi.c: Major rework of existing code.  Add support for
2610	s390x targets.  Add closure support.
2611	* src/s390/sysv.S: Likewise.
2612
26132002-09-29  Richard Earnshaw  <rearnsha@arm.com>
2614
2615	* src/arm/sysv.S: Fix typo.
2616
26172002-09-28  Richard Earnshaw  <rearnsha@arm.com>
2618
2619	* src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
2620	has defined __USER_LABEL_PREFIX__, then use it in CNAME.
2621	(ffi_call_SYSV): Handle soft-float.
2622
26232002-09-27  Bo Thorsen  <bo@suse.de>
2624
2625	* include/ffi.h.in: Fix multilib x86-64 support.
2626
26272002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2628
2629	* Makefile.am (all-multi): Fix multilib parallel build.
2630
26312002-07-19  Kaz Kojima  <kkojima@gcc.gnu.org>
2632
2633	* configure.in (sh[34]*-*-linux*): Add brackets.
2634	* configure: Regenerate.
2635
26362002-07-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2637
2638	* Makefile.am: Add SH support.
2639	* Makefile.in: Regenerate.
2640	* configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
2641	* configure: Regenerate.
2642	* include/ffi.h.in: Add SH support.
2643	* src/sh/ffi.c: New file.
2644	* src/sh/sysv.S: New file.
2645	* src/types.c: Add SH support.
2646
26472002-07-16  Bo Thorsen  <bo@suse.de>
2648
2649	* src/x86/ffi64.c: New file that adds x86-64 support.
2650	* src/x86/unix64.S: New file that handles argument setup for
2651	x86-64.
2652	* src/x86/sysv.S: Don't use this on x86-64.
2653	* src/x86/ffi.c: Don't use this on x86-64.
2654	Remove unused vars.
2655	* src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
2656	for x86-64.
2657	* src/ffitest.c (struct6): New test that tests a special case in
2658	the x86-64 ABI.
2659	(struct7): Likewise.
2660	(struct8): Likewise.
2661	(struct9): Likewise.
2662	(closure_test_fn): Silence warning about this when it's not used.
2663	(main): Add the new tests.
2664	(main): Fix a couple of wrong casts and silence some compiler warnings.
2665	* include/ffi.h.in: Add x86-64 ABI definition.
2666	* fficonfig.h.in: Regenerate.
2667	* Makefile.am: Add x86-64 support.
2668	* configure.in: Likewise.
2669	* Makefile.in: Regenerate.
2670	* configure: Likewise.
2671
26722002-06-24  Bo Thorsen  <bo@suse.de>
2673
2674	* src/types.c: Merge settings for similar architectures.
2675	Add x86-64 sizes and alignments.
2676
26772002-06-23  Bo Thorsen  <bo@suse.de>
2678
2679	* src/arm/ffi.c (ffi_prep_args): Remove unused vars.
2680	* src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
2681	* src/mips/ffi.c (ffi_prep_args): Likewise.
2682	* src/m68k/ffi.c (ffi_prep_args): Likewise.
2683
26842002-07-18  H.J. Lu  (hjl@gnu.org)
2685
2686	* Makefile.am (TARGET_SRC_MIPS_LINUX): New.
2687	(libffi_la_SOURCES): Support MIPS_LINUX.
2688	(libffi_convenience_la_SOURCES): Likewise.
2689	* Makefile.in: Regenerated.
2690
2691	* configure.in (mips64*-*): Skip.
2692	(mips*-*-linux*): New.
2693	* configure: Regenerated.
2694
2695	* src/mips/ffi.c: Include <sgidefs.h>.
2696
26972002-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
2698
2699	* src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
2700
27012002-05-27  Roger Sayle  <roger@eyesopen.com>
2702
2703	* src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
2704
27052002-05-27  Bo Thorsen  <bo@suse.de>
2706
2707	* src/x86/ffi.c (ffi_prep_args): Remove unused variable and
2708	fix formatting.
2709
27102002-05-13  Andreas Tobler  <a.tobler@schweiz.ch>
2711
2712	* src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
2713	beginning of function (for older apple cc).
2714
27152002-05-08  Alexandre Oliva  <aoliva@redhat.com>
2716
2717	* configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
2718	script entry, and set LD to it when configuring multilibs.
2719	* configure: Rebuilt.
2720
27212002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
2722
2723	* configure.in (sparc64-*-netbsd*): Add target.
2724	(sparc-*-netbsdelf*): Likewise.
2725	* configure: Regenerate.
2726
27272002-04-28  David S. Miller  <davem@redhat.com>
2728
2729	* configure.in, configure: Fix SPARC test in previous change.
2730
27312002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>
2732
2733	* Makefile.am: Add Linux for S/390 support.
2734	* Makefile.in: Regenerate.
2735	* configure.in: Add Linux for S/390 support.
2736	* configure: Regenerate.
2737	* include/ffi.h.in: Add Linux for S/390 support.
2738	* src/s390/ffi.c: New file from libffi CVS tree.
2739	* src/s390/sysv.S: New file from libffi CVS tree.
2740
27412002-04-28  Jakub Jelinek  <jakub@redhat.com>
2742
2743	* configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
2744	%r_disp32().
2745	* src/sparc/v8.S: Use it.
2746	* src/sparc/v9.S: Likewise.
2747	* fficonfig.h.in: Rebuilt.
2748	* configure: Rebuilt.
2749
27502002-04-08  Hans Boehm  <Hans_Boehm@hp.com>
2751
2752	* src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
2753	correctly.
2754	* src/ia64/unix.S: Add unwind information. Fix comments.
2755	Save sp in a way that's compatible with unwind info.
2756	(ffi_call_unix): Correctly restore sp in all cases.
2757	* src/ia64/ffi.c: Add, fix comments.
2758
27592002-04-08  Jakub Jelinek  <jakub@redhat.com>
2760
2761	* src/sparc/v8.S: Make .eh_frame dependent on target word size.
2762
27632002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
2764
2765	* configure.in (alpha*-*-netbsd*): Add target.
2766	* configure: Regenerate.
2767
27682002-04-04  Jeff Sturm  <jsturm@one-point.com>
2769
2770	* src/sparc/v8.S: Add unwind info.
2771	* src/sparc/v9.S: Likewise.
2772
27732002-03-30  Krister Walfridsson  <cato@df.lth.se>
2774
2775	* configure.in: Enable i*86-*-netbsdelf*.
2776	* configure: Rebuilt.
2777
27782002-03-29  David Billinghurst <David.Billinghurst@riotinto.com>
2779
2780	PR other/2620
2781	* src/mips/n32.s: Delete
2782	* src/mips/o32.s: Delete
2783
27842002-03-21  Loren J. Rittle  <ljrittle@acm.org>
2785
2786	* configure.in: Enable alpha*-*-freebsd*.
2787	* configure: Rebuilt.
2788
27892002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2790
2791	* Makefile.am: libfficonvenience -> libffi_convenience.
2792	* Makefile.in: Rebuilt.
2793
2794	* Makefile.am: Define ffitest_OBJECTS.
2795	* Makefile.in: Rebuilt.
2796
27972002-03-07  Andreas Tobler  <toa@pop.agri.ch>
2798	    David Edelsohn  <edelsohn@gnu.org>
2799
2800	* Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
2801	(TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
2802	(TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
2803	* Makefile.in: Regenerate.
2804	* include/ffi.h.in: Add AIX and Darwin closure definitions.
2805	* src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
2806	(flush_icache, flush_range): New functions.
2807	(ffi_closure_helper_DARWIN): New function.
2808	* src/powerpc/aix_closure.S: New file.
2809	* src/powerpc/darwin_closure.S: New file.
2810
28112002-02-24  Jeff Sturm  <jsturm@one-point.com>
2812
2813	* include/ffi.h.in: Add typedef for ffi_arg.
2814	* src/ffitest.c (main): Declare rint with ffi_arg.
2815
28162002-02-21  Andreas Tobler  <toa@pop.agri.ch>
2817
2818	* src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
2819	number of GPRs for floating-point arguments.
2820
28212002-01-31  Anthony Green  <green@redhat.com>
2822
2823	* configure: Rebuilt.
2824	* configure.in: Replace CHECK_SIZEOF and endian tests with
2825	cross-compiler friendly macros.
2826	* aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
2827	macros.
2828
28292002-01-18  David Edelsohn  <edelsohn@gnu.org>
2830
2831	* src/powerpc/darwin.S (_ffi_call_AIX): New.
2832	* src/powerpc/aix.S (ffi_call_DARWIN): New.
2833
28342002-01-17  David Edelsohn  <edelsohn@gnu.org>
2835
2836	* Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
2837	(TARGET_SRC_POWERPC_AIX): New.
2838	(POWERPC_AIX): New stanza.
2839	* Makefile.in: Regenerate.
2840	* configure.in: Add AIX case.
2841	* configure: Regenerate.
2842	* include/ffi.h.in (ffi_abi): Add FFI_AIX.
2843	* src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
2844	size.  Fix "long double" support.
2845	(ffi_call): Add FFI_AIX case.
2846	* src/powerpc/aix.S: New.
2847
28482001-10-09  John Hornkvist  <john@toastedmarshmallow.com>
2849
2850	Implement Darwin PowerPC ABI.
2851	* configure.in: Handle powerpc-*-darwin*.
2852	* Makefile.am: Set source files for POWERPC_DARWIN.
2853	* configure: Rebuilt.
2854	* Makefile.in: Rebuilt.
2855	* include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
2856	POWERPC_DARWIN.
2857	* src/powerpc/darwin.S: New file.
2858	* src/powerpc/ffi_darwin.c: New file.
2859
28602001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2861
2862	* src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
2863
28642001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2865
2866	* src/x86/sysv.S: Avoid gas-only .balign directive.
2867	Use C style comments.
2868
28692001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2870
2871	* src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
2872	Fixes PR bootstrap/3563.
2873
28742001-06-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2875
2876	* src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
2877
28782001-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2879
2880	* configure.in: Recognize sparc*-sun-* host.
2881	* configure: Regenerate.
2882
28832001-06-06  Andrew Haley  <aph@redhat.com>
2884
2885	* src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
2886
28872001-06-03  Andrew Haley  <aph@redhat.com>
2888
2889	* src/alpha/osf.S: Add unwind info.
2890	* src/powerpc/sysv.S: Add unwind info.
2891	* src/powerpc/ppc_closure.S: Likewise.
2892
28932000-05-31  Jeff Sturm  <jsturm@one-point.com>
2894
2895	* configure.in: Fix AC_ARG_ENABLE usage.
2896	* configure: Rebuilt.
2897
28982001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2899
2900	* configure.in: Remove warning about beta code.
2901	* configure: Rebuilt.
2902
29032001-04-25  Hans Boehm <Hans_Boehm@hp.com>
2904
2905	* src/ia64/unix.S: Restore stack pointer when returning from
2906	ffi_closure_UNIX.
2907	* src/ia64/ffi.c: Fix typo in comment.
2908
29092001-04-18  Jim Wilson  <wilson@redhat.com>
2910
2911	* src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
2912	to eliminate RAW DV.
2913
29142001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>
2915
2916	* Makefile.am: Make a libtool convenience library.
2917	* Makefile.in: Rebuilt.
2918
29192001-03-29  Bryce McKinlay  <bryce@albatross.co.nz>
2920
2921	* configure.in: Use different syntax for subdirectory creation.
2922	* configure: Rebuilt.
2923
29242001-03-27  Jon Beniston  <jon@beniston.com>
2925
2926	* configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
2927	* configure: Rebuilt.
2928	* Makefile.am: Added X86_WIN32 target support.
2929	* Makefile.in: Rebuilt.
2930
2931	* include/ffi.h.in: Added X86_WIN32 target support.
2932
2933	* src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
2934	* src/types.c: Added X86_WIN32 target support.
2935
2936	* src/x86/win32.S: New file. Based on sysv.S, but with EH
2937	stuff removed and made to work with CygWin's gas.
2938
29392001-03-26  Bryce McKinlay  <bryce@albatross.co.nz>
2940
2941	* configure.in: Make target subdirectory in build dir.
2942	* Makefile.am: Override suffix based rules to specify correct output
2943	subdirectory.
2944	* Makefile.in: Rebuilt.
2945	* configure: Rebuilt.
2946
29472001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>
2948
2949	* src/powerpc/ppc_closure.S: New file.
2950	* src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
2951	involving long long and register pairs.
2952	(ffi_prep_closure): New function.
2953	(flush_icache): Likewise.
2954	(ffi_closure_helper_SYSV): Likewise.
2955	* include/ffi.h.in (FFI_CLOSURES): Define on PPC.
2956	(FFI_TRAMPOLINE_SIZE): Likewise.
2957	(FFI_NATIVE_RAW_API): Likewise.
2958	* Makefile.in: Rebuilt.
2959	* Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
2960	(TARGET_SRC_POWERPC): Likewise.
2961
29622001-03-19  Tom Tromey  <tromey@redhat.com>
2963
2964	* Makefile.in: Rebuilt.
2965	* Makefile.am (ffitest_LDFLAGS): New macro.
2966
29672001-03-02  Nick Clifton  <nickc@redhat.com>
2968
2969	* include/ffi.h.in: Remove RCS ident string.
2970	* include/ffi_mips.h: Remove RCS ident string.
2971	* src/debug.c: Remove RCS ident string.
2972	* src/ffitest.c: Remove RCS ident string.
2973	* src/prep_cif.c: Remove RCS ident string.
2974	* src/types.c: Remove RCS ident string.
2975	* src/alpha/ffi.c: Remove RCS ident string.
2976	* src/alpha/osf.S: Remove RCS ident string.
2977	* src/arm/ffi.c: Remove RCS ident string.
2978	* src/arm/sysv.S: Remove RCS ident string.
2979	* src/mips/ffi.c: Remove RCS ident string.
2980	* src/mips/n32.S: Remove RCS ident string.
2981	* src/mips/o32.S: Remove RCS ident string.
2982	* src/sparc/ffi.c: Remove RCS ident string.
2983	* src/sparc/v8.S: Remove RCS ident string.
2984	* src/sparc/v9.S: Remove RCS ident string.
2985	* src/x86/ffi.c: Remove RCS ident string.
2986	* src/x86/sysv.S: Remove RCS ident string.
2987
29882001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
2989
2990	* include/ffi.h.in: Change sourceware.cygnus.com references to
2991	gcc.gnu.org.
2992
29932000-12-09  Richard Henderson  <rth@redhat.com>
2994
2995	* src/alpha/ffi.c (ffi_call): Simplify struct return test.
2996	(ffi_closure_osf_inner): Index rather than increment avalue
2997	and arg_types.  Give ffi_closure_osf the raw return value type.
2998	* src/alpha/osf.S (ffi_closure_osf): Handle return value type
2999	promotion.
3000
30012000-12-07  Richard Henderson  <rth@redhat.com>
3002
3003	* src/raw_api.c (ffi_translate_args): Fix typo.
3004	(ffi_prep_closure): Likewise.
3005
3006	* include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
3007	FFI_TRAMPOLINE_SIZE.
3008	* src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
3009	cif->bytes for new ffi_call_osf implementation.
3010	(ffi_prep_args): Absorb into ...
3011	(ffi_call): ... here.  Do all stack allocation here and
3012	avoid a callback function.
3013	(ffi_prep_closure, ffi_closure_osf_inner): New.
3014	* src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
3015	(ffi_closure_osf): New.
3016
30172000-09-10  Alexandre Oliva  <aoliva@redhat.com>
3018
3019	* config.guess, config.sub, install-sh: Removed.
3020	* ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
3021	* Makefile.in: Rebuilt.
3022
3023	* acinclude.m4: Include libtool macros from the top level.
3024	* aclocal.m4, configure: Rebuilt.
3025
30262000-08-22  Alexandre Oliva  <aoliva@redhat.com>
3027
3028	* configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
3029	* configure: Rebuilt.
3030
30312000-05-11  Scott Bambrough  <scottb@netwinder.org>
3032
3033	* libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
3034	memory correctly.  Use conditional instructions, not branches where
3035	possible.
3036
30372000-05-04  Tom Tromey  <tromey@cygnus.com>
3038
3039	* configure: Rebuilt.
3040	* configure.in: Match `arm*-*-linux-*'.
3041	From Chris Dornan <cdornan@arm.com>.
3042
30432000-04-28  Jakub Jelinek  <jakub@redhat.com>
3044
3045	* Makefile.am (SUBDIRS): Define.
3046	(AM_MAKEFLAGS): Likewise.
3047	(Multilib support.): Add section.
3048	* Makefile.in: Rebuilt.
3049	* ltconfig (extra_compiler_flags, extra_compiler_flags_value):
3050	New variables. Set for gcc using -print-multi-lib. Export them
3051	to libtool.
3052	(sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
3053	* ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
3054	for -shared links.
3055	(extra_compiler_flags_value, extra_compiler_flags): Check these
3056	for extra compiler options which need to be passed down in
3057	compiler_flags.
3058
30592000-04-16  Anthony Green  <green@redhat.com>
3060
3061	* configure: Rebuilt.
3062	* configure.in: Change i*86-pc-linux* to i*86-*-linux*.
3063
30642000-04-14  Jakub Jelinek  <jakub@redhat.com>
3065
3066	* include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3067	Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
3068	* src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
3069	Replace all void * sizeofs with sizeof(int).
3070	Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
3071	different than DOUBLE.
3072	Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
3073	(ffi_prep_args_v9): New function.
3074	(ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
3075	(ffi_V9_return_struct): New function.
3076	(ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
3077	32bit code (not yet cross-arch calls).
3078	* src/sparc/v8.S: Add struct return delay nop.
3079	Handle long long.
3080	* src/sparc/v9.S: New file.
3081	* src/prep_cif.c (ffi_prep_cif): Return structure pointer
3082	is used on sparc64 only for structures larger than 32 bytes.
3083	Pass by reference for structures is done for structure arguments
3084	larger than 16 bytes.
3085	* src/ffitest.c (main): Use 64bit rint on sparc64.
3086	Run long long tests on sparc.
3087	* src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
3088	sparc64.
3089	(FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
3090	on sparc64.
3091	* configure.in (sparc-*-linux*): New supported target.
3092	(sparc64-*-linux*): Likewise.
3093	* configure: Rebuilt.
3094	* Makefile.am: Add v9.S to SPARC files.
3095	* Makefile.in: Likewise.
3096	(LINK): Surround $(CCLD) into double quotes, so that multilib
3097	compiles work correctly.
3098
30992000-04-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3100
3101	* configure: Rebuilt.
3102	* configure.in: (i*86-*-solaris*): New libffi target. Patch
3103	proposed by Bryce McKinlay.
3104
31052000-03-20  Tom Tromey  <tromey@cygnus.com>
3106
3107	* Makefile.in: Hand edit for java_raw_api.lo.
3108
31092000-03-08  Bryce McKinlay  <bryce@albatross.co.nz>
3110
3111	* config.guess, config.sub: Update from the gcc tree.
3112	Fix for PR libgcj/168.
3113
31142000-03-03  Tom Tromey  <tromey@cygnus.com>
3115
3116	* Makefile.in: Fixed ia64 by hand.
3117
3118	* configure: Rebuilt.
3119	* configure.in (--enable-multilib): New option.
3120	(libffi_basedir): New subst.
3121	(AC_OUTPUT): Added multilib code.
3122
31232000-03-02  Tom Tromey  <tromey@cygnus.com>
3124
3125	* Makefile.in: Rebuilt.
3126	* Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
3127	directory name.
3128
31292000-02-25  Hans Boehm <boehm@acm.org>
3130
3131	* src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
3132	files.
3133	* src/raw_api.c (ffi_translate_args): Fixed typo in argument
3134	list.
3135	(ffi_prep_raw_closure): Use ffi_translate_args, not
3136	ffi_closure_translate.
3137	* src/java_raw_api.c: New file.
3138	* src/ffitest.c (closure_test_fn): New function.
3139	(main): Define `rint' as long long on IA64.  Added new test when
3140	FFI_CLOSURES is defined.
3141	* include/ffi.h.in (ALIGN): Use size_t, not unsigned.
3142	(ffi_abi): Recognize IA64.
3143	(ffi_raw): Added `flt' field.
3144	Added "Java raw API" code.
3145	* configure.in: Recognize ia64.
3146	* Makefile.am (TARGET_SRC_IA64): New macro.
3147	(libffi_la_common_SOURCES): Added java_raw_api.c.
3148	(libffi_la_SOURCES): Define in IA64 case.
3149
31502000-01-04  Tom Tromey  <tromey@cygnus.com>
3151
3152	* Makefile.in: Rebuilt with newer automake.
3153
31541999-12-31  Tom Tromey  <tromey@cygnus.com>
3155
3156	* Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
3157
31581999-09-01  Tom Tromey  <tromey@cygnus.com>
3159
3160	* include/ffi.h.in: Removed PACKAGE and VERSION defines and
3161	undefs.
3162	* fficonfig.h.in: Rebuilt.
3163	* configure: Rebuilt.
3164	* configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
3165	Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
3166	* acconfig.h: Don't #undef PACKAGE or VERSION.
3167
31681999-08-09  Anthony Green  <green@cygnus.com>
3169
3170	* include/ffi.h.in: Try to work around messy header problem
3171	with PACKAGE and VERSION.
3172
3173	* configure: Rebuilt.
3174	* configure.in: Change version to 2.00-beta.
3175
3176	* fficonfig.h.in: Rebuilt.
3177	* acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
3178
3179	* src/x86/ffi.c (ffi_raw_call): Rename.
3180
31811999-08-02  Kresten Krab Thorup  <krab@dominiq.is.s.u-tokyo.ac.jp>
3182
3183	* src/x86/ffi.c (ffi_closure_SYSV): New function.
3184	(ffi_prep_incoming_args_SYSV): Ditto.
3185	(ffi_prep_closure): Ditto.
3186	(ffi_closure_raw_SYSV): Ditto.
3187	(ffi_prep_raw_closure): More ditto.
3188	(ffi_call_raw): Final ditto.
3189
3190	* include/ffi.h.in: Add definitions for closure and raw API.
3191
3192	* src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
3193	FFI_TYPE_UINT64.
3194
3195	* Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
3196
3197	* src/raw_api.c: New file.
3198
3199	* include/ffi.h.in (ffi_raw): New type.
3200	(UINT_ARG, SINT_ARG): New defines.
3201	(ffi_closure, ffi_raw_closure): New types.
3202	(ffi_prep_closure, ffi_prep_raw_closure): New declarations.
3203
3204	* configure.in: Add check for endianness and sizeof void*.
3205
3206	* src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
3207	instead of directly.
3208
3209	* configure: Rebuilt.
3210
3211Thu Jul  8 14:28:42 1999  Anthony Green  <green@cygnus.com>
3212
3213	* configure.in: Add x86 and powerpc BeOS configurations.
3214	From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
3215
32161999-05-09  Anthony Green  <green@cygnus.com>
3217
3218	* configure.in: Add warning about this being beta code.
3219	Remove src/Makefile.am from the picture.
3220	* configure: Rebuilt.
3221
3222	* Makefile.am: Move logic from src/Makefile.am.  Add changes
3223	to support libffi as a target library.
3224	* Makefile.in: Rebuilt.
3225
3226	* aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
3227	Upgraded to new autoconf, automake, libtool.
3228
3229	* README: Tweaks.
3230
3231	* LICENSE: Update copyright date.
3232
3233	* src/Makefile.am, src/Makefile.in: Removed.
3234
32351998-11-29  Anthony Green  <green@cygnus.com>
3236
3237	* include/ChangeLog: Removed.
3238	* src/ChangeLog: Removed.
3239	* src/mips/ChangeLog: Removed.
3240	* src/sparc/ChangeLog: Remboved.
3241	* src/x86/ChangeLog: Removed.
3242
3243	* ChangeLog.v1: Created.
3244