OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libffi/] [ChangeLog] - Blame information for rev 775

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 732 jeremybenn
2012-02-27  Mikael Pettersson  
2
 
3
        PR libffi/52223
4
        * Makefile.am (FLAGS_TO_PASS): Define.
5
        * Makefile.in: Regenerate.
6
 
7
2012-02-23  Kai Tietz  
8
 
9
        PR libffi/52221
10
        * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
11
        prototype.
12
        (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
13
        thiscall-convention.
14
        (ffi_raw_call): Use ffi_prep_args_raw.
15
        * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
16
        implementation for stub.
17
 
18
2012-02-13  Kai Tietz  
19
 
20
        PR libffi/52221
21
        * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
22
        support for X86_WIN32.
23
        (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
24
 
25
2012-02-11  Eric Botcazou  
26
 
27
        * src/sparc/v9.S (STACKFRAME): Bump to 176.
28
 
29
2012-02-10  Kai Tietz  
30
 
31
        * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
32
        windows target.
33
        * configure: Regenerated.
34
 
35
2012-02-08  Kai Tietz  
36
 
37
        * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
38
        also FFI_THISCALL.
39
        * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
40
        (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
41
        (ffi_prep_closure_loc): Add FFI_THISCALL support.
42
        * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
43
        * src/x86/win32.S (ffi_closure_THISCALL): New closure code
44
        for thiscall-calling convention.
45
        * testsuite/libffi.call/closure_thiscall.c: New test.
46
 
47
2012-01-28  Kai Tietz  
48
 
49
        * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
50
        argument to prototype for specify calling-convention.
51
        (ffi_call): Add support for stdcall/thiscall convention.
52
        (ffi_prep_args): Likewise.
53
        (ffi_raw_call): Likewise.
54
        * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
55
        FFI_FASTCALL.
56
        * src/x86/win32.S (_ffi_call_win32): Add support for
57
        fastcall/thiscall calling-convention calls.
58
        * testsuite/libffi.call/fastthis1_win32.c: New test.
59
        * testsuite/libffi.call/fastthis2_win32.c: New test.
60
        * testsuite/libffi.call/fastthis3_win32.c: New test.
61
        * testsuite/libffi.call/strlen2_win32.c: New test.
62
        * testsuite/libffi.call/many2_win32.c: New test.
63
        * testsuite/libffi.call/struct1_win32.c: New test.
64
        * testsuite/libffi.call/struct2_win32.c: New test.
65
 
66
2012-01-23  Andreas Schwab  
67
 
68
        * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
69
        mc68000.  Test for __HAVE_68881__ in addition to __MC68881__.
70
 
71
2012-01-19  Jakub Jelinek  
72
 
73
        PR rtl-optimization/48496
74
        * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
75
 
76
2012-01-09  Rainer Orth  
77
 
78
        * configure.ac (i?86-*-*): Set TARGET to X86_64.
79
        * configure: Regenerate.
80
 
81
2011-12-07  Andrew Pinski  
82
 
83
        PR libffi/50051
84
        * src/mips/n32.S: Add ".set mips4".
85
 
86
2011-11-21  Andreas Tobler  
87
 
88
        * configure: Regenerate.
89
 
90
2011-11-10  Richard Henderson  
91
 
92
        * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
93
        * configure, aclocal.m4: Rebuild.
94
 
95
2011-09-04  Iain Sandoe  
96
 
97
        PR libffi/49594
98
        * src/powerpc/darwin_closure.S (stubs): Make the stub binding
99
        helper reference track the architecture pointer size.
100
 
101
2011-08-25  Andrew Haley  
102
 
103
        * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
104
        instructions.
105
        * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
106
 
107
2011-07-11  Andrew Haley  
108
 
109
        * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
110
 
111
2011-06-29  Rainer Orth  
112
 
113
        * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
114
        * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
115
 
116
2011-06-29  Rainer Orth  
117
 
118
        PR libffi/46660
119
        * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
120
        mips-sgi-irix6*.
121
        * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
122
 
123
2011-06-14  Rainer Orth  
124
 
125
        * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
126
        PRId8 instead of %hhu, %hhd.
127
        * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
128
        PRIu8): Define.
129
        [__sgi__] (PRId8, PRIu8): Define.
130
 
131
2011-04-29  Rainer Orth  
132
 
133
        * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
134
        Define.
135
        Use them to handle ELF vs. ECOFF differences.
136
        [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
137
 
138
2011-02-13  Ralf Wildenhues  
139
 
140
        * configure: Regenerate.
141
 
142
2011-02-09  Rainer Orth  
143
 
144
        PR libffi/46661
145
        * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
146
        uintptr_t first.
147
        * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
148
 
149
2011-02-07  Joel Sherrill 
150
 
151
        * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
152
        Handle case when CPU variant does not have long double support.
153
        * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
154
        and cores with soft floating point.
155
 
156
2011-02-07  Joel Sherrill 
157
 
158
        * configure.ac: Add mips*-*-rtems* support.
159
        * configure: Regenerate.
160
        * src/mips/ffitarget.h: Ensure needed constants are available
161
        for targets which do not have sgidefs.h.
162
 
163
2011-01-26  Dave Korn  
164
 
165
        PR target/40125
166
        * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
167
        * configure: Regenerate.
168
 
169
2010-12-18  Iain Sandoe  
170
 
171
        PR libffi/29152
172
        PR libffi/42378
173
        * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
174
        update comments.
175
        * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
176
        (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
177
        * src/powerpc/darwin.S: Provide Darwin64 implementation,
178
        update comments.
179
        * src/powerpc/ffi_darwin.c: Likewise.
180
 
181
2010-12-06  Rainer Orth  
182
 
183
        * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
184
        backslashes.
185
        (libffi_cv_as_string_pseudo_op): Likewise.
186
        * configure: Regenerate.
187
 
188
2010-12-03  Chung-Lin Tang  
189
 
190
        * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
191
        (ffi_closure_VFP): Same.
192
        (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
193
        directive.
194
 
195
2010-12-01  Rainer Orth  
196
 
197
        * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
198
        (PRIuPTR): Define.
199
 
200
2010-11-29  Richard Henderson  
201
            Rainer Orth  
202
 
203
        * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
204
        (.eh_frame): Use FDE_ENCODING.
205
        (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
206
 
207
2010-11-15  Rainer Orth  
208
 
209
        * testsuite/lib/libffi-dg.exp: Rename ...
210
        * testsuite/lib/libffi.exp: ... to this.
211
        * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
212
        * libffi/testsuite/libffi.special/special.exp: Likewise.
213
 
214
2010-10-28  Chung-Lin Tang  
215
 
216
        * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
217
        code, new parameter, and return value. Update comments.
218
        (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
219
        call to layout_vfp_args().
220
        (ffi_call_SYSV): Update declaration.
221
        (ffi_call_VFP): New declaration.
222
        (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
223
        when ABI is FFI_VFP.
224
        (ffi_closure_VFP): New declaration.
225
        (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
226
        ffi_prep_incoming_args_SYSV().
227
        (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
228
        case handling.
229
        (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
230
        construction under VFP hard-float.
231
        (rec_vfp_type_p): New function.
232
        (vfp_type_p): Same.
233
        (place_vfp_arg): Same.
234
        (layout_vfp_args): Same.
235
        * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
236
        based on __ARM_PCS_VFP.
237
        (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
238
        fields.
239
        (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
240
        (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
241
        * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
242
        direct call. Move function pointer load upwards.
243
        (ffi_call_VFP): New function.
244
        (ffi_closure_VFP): Same.
245
 
246
        * testsuite/lib/libffi-dg.exp (check-flags): New function.
247
        (dg-skip-if): New function.
248
        * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
249
        and compiler options include -mfloat-abi=hard.
250
        * testsuite/libffi.call/cls_longdouble_va.c: Same.
251
 
252
2010-10-01  Jakub Jelinek  
253
 
254
        PR libffi/45677
255
        * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
256
        a multiple of 8.
257
        * testsuite/libffi.call/many2.c: New test.
258
 
259
2010-08-20  Mark Wielaard  
260
 
261
        * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
262
        returns NULL.
263
 
264
2010-08-09  Andreas Tobler  
265
 
266
        * configure.ac: Add target powerpc64-*-freebsd*.
267
        * configure: Regenerate.
268
        * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
269
        -mlong-double-128 only to linux targets.
270
        * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
271
        * testsuite/libffi.call/cls_longdouble.c: Likewise.
272
        * testsuite/libffi.call/huge_struct.c: Likewise.
273
 
274
2010-07-10  Evan Phoenix  
275
 
276
        * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
277
 
278
2010-07-07  Dan Horák 
279
 
280
        * include/ffi.h.in: Protect #define with #ifndef.
281
        * src/powerpc/ffitarget.h: Ditto.
282
        * src/s390/ffitarget.h: Ditto.
283
        * src/sparc/ffitarget.h: Ditto.
284
 
285
2010-07-07   Neil Roberts 
286
 
287
        * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
288
        16-bytes.
289
 
290
2010-07-02  Jakub Jelinek  
291
 
292
        * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
293
        * Makefile.in: Regenerated.
294
 
295
2010-05-19  Rainer Orth  
296
 
297
        * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
298
        output, too.
299
        (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
300
        (libffi_cv_as_string_pseudo_op): Check for .string.
301
        * configure: Regenerate.
302
        * fficonfig.h.in: Regenerate.
303
        * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
304
 
305
2010-05-05  Michael Kohler 
306
 
307
        * src/dlmalloc.c (dlfree): Fix spelling.
308
        * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
309
        * configure.ac: Ditto.
310
        * configure: Rebuilt.
311
 
312
2010-04-13  Dan Witte  
313
 
314
        * msvcc.sh: Build with -W3 instead of -Wall.
315
        * src/powerpc/ffi_darwin.c: Remove build warnings.
316
        * src/x86/ffi.c: Ditto.
317
        * src/x86/ffitarget.h: Ditto.
318
 
319
2010-04-12  Dan Witte  
320
            Walter Meinl 
321
 
322
        * configure.ac: Add OS/2 support.
323
        * configure: Rebuilt.
324
        * src/closures.c: Ditto.
325
        * src/dlmalloc.c: Ditto.
326
        * src/x86/win32.S: Ditto.
327
 
328
2010-04-07  Jakub Jelinek  
329
 
330
        * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
331
 
332
2010-04-02  Ralf Wildenhues  
333
 
334
        * Makefile.in: Regenerate.
335
        * aclocal.m4: Regenerate.
336
        * include/Makefile.in: Regenerate.
337
        * man/Makefile.in: Regenerate.
338
        * testsuite/Makefile.in: Regenerate.
339
 
340
2010-03-15  Rainer Orth  
341
 
342
        * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
343
        * configure: Regenerate.
344
        * fficonfig.h.in: Regenerate.
345
        * libffi/src/x86/unix64.S (.eh_frame)
346
        [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
347
 
348
2010-03-14  Matthias Klose  
349
 
350
        * src/x86/ffi64.c: Fix typo in comment.
351
        * src/x86/ffi.c: Use /* ... */ comment style.
352
 
353
2010-02-24  Rainer Orth  
354
 
355
        * doc/libffi.texi (The Closure API): Fix typo.
356
        * doc/libffi.info: Remove.
357
 
358
2010-02-15  Matthias Klose  
359
 
360
        * src/arm/sysv.S (__ARM_ARCH__): Define for processor
361
        __ARM_ARCH_7EM__.
362
 
363
2010-01-15  Anthony Green  
364
 
365
        * README: Add notes on building with Microsoft Visual C++.
366
 
367
2010-01-15  Daniel Witte  
368
 
369
        * msvcc.sh: New file.
370
 
371
        * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
372
        * src/x86/ffi.c: Tweak function declaration and remove excess
373
        parens.
374
        * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
375
        ffi_closure.
376
 
377
        * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
378
        function ffi_call_win32 on X86_WIN32.
379
        * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
380
        (ffi_call_STDCALL): Remove.
381
 
382
        * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
383
        to ffi_prep_cif_machdep for x86.
384
        * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
385
 
386
2010-01-15  Oliver Kiddle  
387
 
388
        * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
389
        Sun Studio compiler compatibility.
390
 
391
2010-01-12  Conrad Irwin 
392
 
393
        * doc/libffi.texi: Add closure example.
394
 
395
2010-01-07  Rainer Orth  
396
 
397
        PR libffi/40701
398
        * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
399
        PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
400
        * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
401
        alpha*-dec-osf*.
402
        * testsuite/libffi.call/cls_align_uint64.c: Likewise.
403
        * testsuite/libffi.call/cls_ulonglong.c: Likewise.
404
        * testsuite/libffi.call/return_ll1.c: Likewise.
405
        * testsuite/libffi.call/stret_medium2.c: Likewise.
406
        * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
407
        MAP_FAILED to char *.
408
 
409
2010-01-06  Rainer Orth  
410
 
411
        * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
412
 
413
2009-12-31  Anthony Green  
414
 
415
        * README: Update for libffi 3.0.9.
416
 
417
2009-12-27  Matthias Klose  
418
 
419
        * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
420
        appropriate.
421
        * configure: Rebuilt.
422
 
423
2009-12-26  Anthony Green  
424
 
425
        * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
426
        avr32*-*-*.
427
        * testsuite/libffi.call/cls_double_va.c: Ditto.
428
 
429
2009-12-26  Andreas Tobler  
430
 
431
        * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
432
        and inttypes.h.
433
        * testsuite/libffi.special/unwindtest.cc: Ditto.
434
 
435
2009-12-26  Andreas Tobler  
436
 
437
        * configure.ac: Add amd64-*-openbsd*.
438
        * configure: Rebuilt.
439
        * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
440
        openbsd programs with -lpthread.
441
 
442
2009-12-26  Anthony Green  
443
 
444
        * testsuite/libffi.call/cls_double_va.c,
445
        testsuite/libffi.call/cls_longdouble.c,
446
        testsuite/libffi.call/cls_longdouble_va.c,
447
        testsuite/libffi.call/cls_pointer.c,
448
        testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
449
        mips*-*-* and arm*-*-*.
450
        * testsuite/libffi.call/cls_align_longdouble_split.c,
451
        testsuite/libffi.call/cls_align_longdouble_split2.c,
452
        testsuite/libffi.call/stret_medium2.c,
453
        testsuite/libffi.call/stret_medium.c,
454
        testsuite/libffi.call/stret_large.c,
455
        testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
456
 
457
2009-12-31  Kay Tietz  
458
 
459
        * testsuite/libffi.call/ffitest.h,
460
        testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
461
        definitions.
462
 
463
2009-12-31  Carlo Bramini  
464
 
465
        * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
466
        * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
467
        * configure: Rebuilt.
468
        * Makefile.in: Rebuilt.
469
 
470
2009-12-31  Anthony Green  
471
            Blake Chaffin.
472
 
473
        * testsuite/libffi.call/huge_struct.c: New test case from Blake
474
        Chaffin @ Apple.
475
 
476
2009-12-28  David Edelsohn  
477
 
478
        * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
479
        local variables.
480
        (aix_adjust_aggregate_sizes): New function.
481
        (ffi_prep_cif_machdep): Call it.
482
 
483
2009-12-26  Andreas Tobler  
484
 
485
        * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
486
        * configure: Regenerate.
487
        * fficonfig.h.in: Likewise.
488
        * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
489
        Solaris/x86.
490
 
491
2009-12-26  Andreas Schwab  
492
 
493
        * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
494
        when a float arguments is passed in memory.
495
        (ffi_closure_helper_SYSV): Mark general registers as used up when
496
        a 64bit or soft-float long double argument is passed in memory.
497
 
498
2009-12-25  Matthias Klose  
499
 
500
        * man/ffi_call.3: Fix #include in examples.
501
        * doc/libffi.texi: Add dircategory.
502
 
503
2009-12-25  Frank Everdij 
504
 
505
        * include/ffi.h.in: Placed '__GNUC__' ifdef around
506
        '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
507
        IRIX MIPSPro c99.
508
        * include/ffi_common.h: Added '__sgi' define to non
509
        '__attribute__((__mode__()))' integer typedefs.
510
        * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
511
        ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
512
        (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
513
        FFI_LONGDOUBLE support and alignment(N32 only).
514
        * src/mips/ffitarget.h: Corrected '#include ' for IRIX and
515
        fixed non '__attribute__((__mode__()))' integer typedefs.
516
        * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
517
        since they are Linux/GNU Assembler specific.
518
 
519
2009-12-25  Bradley Smith  
520
 
521
        * configure.ac, Makefile.am, src/avr32/ffi.c,
522
        src/avr32/ffitarget.h,
523
        src/avr32/sysv.S: Add AVR32 port.
524
        * configure, Makefile.in: Rebuilt.
525
 
526
2009-12-21  Andreas Tobler  
527
 
528
        * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
529
        * configure: Regenerate.
530
 
531
2009-12-15  John David Anglin  
532
 
533
        * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
534
 
535
2009-12-13  John David Anglin  
536
 
537
        * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
538
        type on HP-UX.
539
 
540
2009-12-11  Eric Botcazou  
541
 
542
        * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
543
        double' arguments.
544
 
545
2009-12-11  Eric Botcazou  
546
 
547
        * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
548
 
549
2009-12-10  Rainer Orth  
550
 
551
        PR libffi/40700
552
        * src/closures.c [X86_64 && __sun__ && __svr4__]
553
        (FFI_MMAP_EXEC_WRIT): Define.
554
 
555
2009-12-08  David Daney  
556
 
557
        * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
558
        * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
559
        * testsuite/libffi.call/stret_large.c: Same.
560
        * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
561
        * testsuite/libffi.call/stret_large2.c: Same.
562
        * testsuite/libffi.call/stret_medium2.c: Same.
563
 
564
2009-12-07  David Edelsohn  
565
 
566
        * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
567
        typo.
568
 
569
2009-12-05  David Edelsohn  
570
 
571
        * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
572
        code.
573
        * src/powerpc/aix_closure.S: Same.
574
 
575
2009-12-05  Ralf Wildenhues  
576
 
577
        * Makefile.in: Regenerate.
578
        * configure: Regenerate.
579
        * include/Makefile.in: Regenerate.
580
        * man/Makefile.in: Regenerate.
581
        * testsuite/Makefile.in: Regenerate.
582
 
583
2009-12-04  David Edelsohn  
584
 
585
        * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
586
        linux64_closure.S.
587
 
588
2009-12-04  Uros Bizjak  
589
 
590
        PR libffi/41908
591
        * src/x86/ffi64.c (classify_argument): Update from
592
        gcc/config/i386/i386.c.
593
        (ffi_closure_unix64_inner): Do not use the address of two consecutive
594
        SSE registers directly.
595
        * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
596
        for x86_64 linux targets.
597
 
598
2009-12-04  David Edelsohn  
599
 
600
        * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
601
        pfr for long double split between fpr13 and stack.
602
 
603
2009-12-03  David Edelsohn  
604
 
605
        * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
606
        fparg_count twice for long double.
607
 
608
2009-12-03  David Edelsohn  
609
 
610
        PR libffi/42243
611
        * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
612
 
613
2009-12-03  Uros Bizjak  
614
 
615
        * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
616
        Remove xfails for x86 linux targets.
617
 
618
2009-12-02  David Edelsohn  
619
 
620
        * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
621
        case.
622
 
623
2009-12-01  David Edelsohn  
624
 
625
        * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
626
        register usage.  Call ffi_prep_args directly.  Add long double
627
        return value support.
628
        * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
629
        applies to FFI_TYPE_DOUBLE.  Correct fpr_base increment typo.
630
        Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
631
        (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
632
        mode.
633
        (ffi_closure_helper_DARWIN): Remove nf and ng counters.  Move temp
634
        into case.
635
        * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
636
        Allocate result area between params and FPRs.
637
 
638
2009-11-30  David Edelsohn  
639
 
640
        PR target/35484
641
        * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
642
        AIX64.
643
        * src/powerpc/aix.S: Implement AIX64 version.
644
        * src/powerpc/aix_closure.S: Implement AIX64 version.
645
        (ffi_closure_ASM): Use extsb, lha and displament addresses.
646
        * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
647
        support.
648
        (ffi_prep_cif_machdep): Same.
649
        (ffi_call): Same.
650
        (ffi_closure_helper_DARWIN): Same.
651
 
652
2009-11-02  Andreas Tobler  
653
 
654
        PR libffi/41908
655
        * testsuite/libffi.call/testclosure.c: New test.
656
 
657
2009-09-28  Kai Tietz  
658
 
659
        * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
660
        assembly version use of ___chkstk.
661
 
662
2009-09-23  Matthias Klose  
663
 
664
        PR libffi/40242, PR libffi/41443
665
        * src/arm/sysv.S (__ARM_ARCH__): Define for processors
666
        __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
667
        __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
668
        Change the conditionals to __SOFTFP__ || __ARM_EABI__
669
        for -mfloat-abi=softfp to work.
670
 
671
2009-09-17  Loren J. Rittle  
672
 
673
        PR testsuite/32843 (strikes again)
674
        * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
675
        enable proper extension on char and short.
676
 
677
2009-09-15  David Daney  
678
 
679
        * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
680
        handling for FFI_TYPE_POINTER.
681
        * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
682
        FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
683
        FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
684
        FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
685
        (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
686
        (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
687
        * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
688
        structure and pointer returns.
689
        (ffi_closure_N32): Add handling for pointer returns.
690
        * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
691
        calc_n32_return_struct_flags): Handle soft-float.
692
        (ffi_prep_cif_machdep):  Handle soft-float, fix pointer handling.
693
        (ffi_call_N32): Declare proper argument types.
694
        (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
695
        soft-float.
696
 
697
2009-08-24  Ralf Wildenhues  
698
 
699
        * configure.ac (AC_PREREQ): Bump to 2.64.
700
 
701
2009-08-22  Ralf Wildenhues  
702
 
703
        * Makefile.am (install-html, install-pdf): Remove.
704
        * Makefile.in: Regenerate.
705
 
706
        * Makefile.in: Regenerate.
707
        * aclocal.m4: Regenerate.
708
        * configure: Regenerate.
709
        * fficonfig.h.in: Regenerate.
710
        * include/Makefile.in: Regenerate.
711
        * man/Makefile.in: Regenerate.
712
        * testsuite/Makefile.in: Regenerate.
713
 
714
2009-07-30  Ralf Wildenhues  
715
 
716
        * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
717
 
718
2009-07-24  Dave Korn  
719
 
720
        PR libffi/40807
721
        * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
722
        return types for X86_WIN32.
723
        * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
724
        (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
725
        _ffi_closure_STDCALL): Likewise.
726
 
727
        * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
728
        (dlmmap, dlmunmap): Also use these functions on Cygwin.
729
 
730
2009-07-11  Richard Sandiford  
731
 
732
        PR testsuite/40699
733
        PR testsuite/40707
734
        PR testsuite/40709
735
        * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
736
        2009-06-30 commits.
737
 
738
2009-07-01  Richard Sandiford  
739
 
740
        * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
741
        to "" before adding paths.  (This reinstates an assignment that
742
        was removed by my 2009-06-30 commit, but changes the initial
743
        value from "." to "".)
744
 
745
2009-07-01  H.J. Lu  
746
 
747
        PR testsuite/40601
748
        * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
749
        gccdir.  Adjust ld_library_path for gcc only if gccdir isn't
750
        empty.
751
 
752
2009-06-30  Richard Sandiford  
753
 
754
        * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
755
        to ld_library_path.  Use add_path.  Add just find_libgcc_s
756
        to ld_library_path, not every libgcc multilib directory.
757
 
758
2009-06-16  Wim Lewis  
759
 
760
        * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
761
        supposed to be callee-saved.
762
        * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
763
        return buffer for odd-size structs.
764
 
765
2009-06-16  Andreas Tobler  
766
 
767
        PR libffi/40444
768
        * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
769
        allow_stack_execute for Darwin.
770
 
771
2009-06-16  Andrew Haley  
772
 
773
        * configure.ac (TARGETDIR): Add missing blank lines.
774
        * configure: Regenerate.
775
 
776
2009-06-16  Andrew Haley  
777
 
778
        * testsuite/libffi.call/cls_align_sint64.c,
779
        testsuite/libffi.call/cls_align_uint64.c,
780
        testsuite/libffi.call/cls_longdouble_va.c,
781
        testsuite/libffi.call/cls_ulonglong.c,
782
        testsuite/libffi.call/return_ll1.c,
783
        testsuite/libffi.call/stret_medium2.c: Fix printf format
784
        specifiers.
785
        * testsuite/libffi.call/ffitest.h,
786
        testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
787
 
788
2009-06-15  Andrew Haley  
789
 
790
        * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
791
        * testsuite/libffi.call/err_bad_abi.c: Likewise.
792
 
793
2009-06-12  Andrew Haley  
794
 
795
        * Makefile.am: Remove info_TEXINFOS.
796
 
797
2009-06-12  Andrew Haley  
798
 
799
        * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
800
        testsuite/libffi.call/cls_align_uint64.c,
801
        testsuite/libffi.call/cls_ulonglong.c,
802
        testsuite/libffi.call/return_ll1.c,
803
        testsuite/libffi.call/stret_medium2.c: Fix printf format
804
        specifiers.
805
        testsuite/libffi.special/unwindtest.cc: include stdint.h.
806
 
807
2009-06-11  Timothy Wall  
808
 
809
        * Makefile.am,
810
        configure.ac,
811
        include/ffi.h.in,
812
        include/ffi_common.h,
813
        src/closures.c,
814
        src/dlmalloc.c,
815
        src/x86/ffi.c,
816
        src/x86/ffitarget.h,
817
        src/x86/win64.S (new),
818
        README: Added win64 support (mingw or MSVC)
819
        * Makefile.in,
820
        include/Makefile.in,
821
        man/Makefile.in,
822
        testsuite/Makefile.in,
823
        configure,
824
        aclocal.m4: Regenerated
825
        * ltcf-c.sh: properly escape cygwin/w32 path
826
        * man/ffi_call.3: Clarify size requirements for return value.
827
        * src/x86/ffi64.c: Fix filename in comment.
828
        * src/x86/win32.S: Remove unused extern.
829
 
830
        * testsuite/libffi.call/closure_fn0.c,
831
        testsuite/libffi.call/closure_fn1.c,
832
        testsuite/libffi.call/closure_fn2.c,
833
        testsuite/libffi.call/closure_fn3.c,
834
        testsuite/libffi.call/closure_fn4.c,
835
        testsuite/libffi.call/closure_fn5.c,
836
        testsuite/libffi.call/closure_fn6.c,
837
        testsuite/libffi.call/closure_stdcall.c,
838
        testsuite/libffi.call/cls_12byte.c,
839
        testsuite/libffi.call/cls_16byte.c,
840
        testsuite/libffi.call/cls_18byte.c,
841
        testsuite/libffi.call/cls_19byte.c,
842
        testsuite/libffi.call/cls_1_1byte.c,
843
        testsuite/libffi.call/cls_20byte.c,
844
        testsuite/libffi.call/cls_20byte1.c,
845
        testsuite/libffi.call/cls_24byte.c,
846
        testsuite/libffi.call/cls_2byte.c,
847
        testsuite/libffi.call/cls_3_1byte.c,
848
        testsuite/libffi.call/cls_3byte1.c,
849
        testsuite/libffi.call/cls_3byte2.c,
850
        testsuite/libffi.call/cls_4_1byte.c,
851
        testsuite/libffi.call/cls_4byte.c,
852
        testsuite/libffi.call/cls_5_1_byte.c,
853
        testsuite/libffi.call/cls_5byte.c,
854
        testsuite/libffi.call/cls_64byte.c,
855
        testsuite/libffi.call/cls_6_1_byte.c,
856
        testsuite/libffi.call/cls_6byte.c,
857
        testsuite/libffi.call/cls_7_1_byte.c,
858
        testsuite/libffi.call/cls_7byte.c,
859
        testsuite/libffi.call/cls_8byte.c,
860
        testsuite/libffi.call/cls_9byte1.c,
861
        testsuite/libffi.call/cls_9byte2.c,
862
        testsuite/libffi.call/cls_align_double.c,
863
        testsuite/libffi.call/cls_align_float.c,
864
        testsuite/libffi.call/cls_align_longdouble.c,
865
        testsuite/libffi.call/cls_align_longdouble_split.c,
866
        testsuite/libffi.call/cls_align_longdouble_split2.c,
867
        testsuite/libffi.call/cls_align_pointer.c,
868
        testsuite/libffi.call/cls_align_sint16.c,
869
        testsuite/libffi.call/cls_align_sint32.c,
870
        testsuite/libffi.call/cls_align_sint64.c,
871
        testsuite/libffi.call/cls_align_uint16.c,
872
        testsuite/libffi.call/cls_align_uint32.c,
873
        testsuite/libffi.call/cls_align_uint64.c,
874
        testsuite/libffi.call/cls_dbls_struct.c,
875
        testsuite/libffi.call/cls_double.c,
876
        testsuite/libffi.call/cls_double_va.c,
877
        testsuite/libffi.call/cls_float.c,
878
        testsuite/libffi.call/cls_longdouble.c,
879
        testsuite/libffi.call/cls_longdouble_va.c,
880
        testsuite/libffi.call/cls_multi_schar.c,
881
        testsuite/libffi.call/cls_multi_sshort.c,
882
        testsuite/libffi.call/cls_multi_sshortchar.c,
883
        testsuite/libffi.call/cls_multi_uchar.c,
884
        testsuite/libffi.call/cls_multi_ushort.c,
885
        testsuite/libffi.call/cls_multi_ushortchar.c,
886
        testsuite/libffi.call/cls_pointer.c,
887
        testsuite/libffi.call/cls_pointer_stack.c,
888
        testsuite/libffi.call/cls_schar.c,
889
        testsuite/libffi.call/cls_sint.c,
890
        testsuite/libffi.call/cls_sshort.c,
891
        testsuite/libffi.call/cls_uchar.c,
892
        testsuite/libffi.call/cls_uint.c,
893
        testsuite/libffi.call/cls_ulonglong.c,
894
        testsuite/libffi.call/cls_ushort.c,
895
        testsuite/libffi.call/err_bad_abi.c,
896
        testsuite/libffi.call/err_bad_typedef.c,
897
        testsuite/libffi.call/float2.c,
898
        testsuite/libffi.call/huge_struct.c,
899
        testsuite/libffi.call/nested_struct.c,
900
        testsuite/libffi.call/nested_struct1.c,
901
        testsuite/libffi.call/nested_struct10.c,
902
        testsuite/libffi.call/nested_struct2.c,
903
        testsuite/libffi.call/nested_struct3.c,
904
        testsuite/libffi.call/nested_struct4.c,
905
        testsuite/libffi.call/nested_struct5.c,
906
        testsuite/libffi.call/nested_struct6.c,
907
        testsuite/libffi.call/nested_struct7.c,
908
        testsuite/libffi.call/nested_struct8.c,
909
        testsuite/libffi.call/nested_struct9.c,
910
        testsuite/libffi.call/problem1.c,
911
        testsuite/libffi.call/return_ldl.c,
912
        testsuite/libffi.call/return_ll1.c,
913
        testsuite/libffi.call/stret_large.c,
914
        testsuite/libffi.call/stret_large2.c,
915
        testsuite/libffi.call/stret_medium.c,
916
        testsuite/libffi.call/stret_medium2.c,
917
        testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
918
        of checking for MMAP.  Use intptr_t instead of long casts.
919
 
920
2009-06-11  Kaz Kojima  
921
 
922
        * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
923
        * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
924
        * testsuite/libffi.call/err_bad_typedef.c: Likewise.
925
 
926
2009-06-09  Andrew Haley  
927
 
928
        * src/x86/freebsd.S: Add missing file.
929
 
930
2009-06-08  Andrew Haley  
931
 
932
        Import from libffi 3.0.8:
933
 
934
        * doc/libffi.texi: New file.
935
        * doc/libffi.info: Likewise.
936
        * doc/stamp-vti: Likewise.
937
        * man/Makefile.am: New file.
938
        * man/ffi_call.3: New file.
939
 
940
        * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
941
        src/dlmalloc.c.
942
        (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
943
 
944
        * configure.ac: Bump version to 3.0.8.
945
        parisc*-*-linux*: Add.
946
        i386-*-freebsd* | i386-*-openbsd*: Add.
947
        powerpc-*-beos*: Add.
948
        AM_CONDITIONAL X86_FREEBSD: Add.
949
        AC_CONFIG_FILES: Add man/Makefile.
950
 
951
        * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
952
 
953
2009-06-08  Andrew Haley  
954
 
955
        * README: Import from libffi 3.0.8.
956
 
957
2009-06-08  Andrew Haley  
958
 
959
        * testsuite/libffi.call/err_bad_abi.c: Add xfails.
960
        * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
961
        * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
962
        * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
963
 
964
        * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
965
        * testsuite/libffi.call/stret_medium.c: Likewise.
966
        * testsuite/libffi.call/stret_large2.c: Likewise.
967
        * testsuite/libffi.call/stret_large.c:  Likewise.
968
 
969
2008-12-26  Timothy Wall  
970
 
971
        * testsuite/libffi.call/cls_longdouble.c,
972
        testsuite/libffi.call/cls_longdouble_va.c,
973
        testsuite/libffi.call/cls_align_longdouble.c,
974
        testsuite/libffi.call/cls_align_longdouble_split.c,
975
        testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
976
        failures on x86_64 cygwin/mingw.
977
 
978
2008-12-22  Timothy Wall  
979
 
980
        * testsuite/libffi.call/closure_fn0.c,
981
        testsuite/libffi.call/closure_fn1.c,
982
        testsuite/libffi.call/closure_fn2.c,
983
        testsuite/libffi.call/closure_fn3.c,
984
        testsuite/libffi.call/closure_fn4.c,
985
        testsuite/libffi.call/closure_fn5.c,
986
        testsuite/libffi.call/closure_fn6.c,
987
        testsuite/libffi.call/closure_loc_fn0.c,
988
        testsuite/libffi.call/closure_stdcall.c,
989
        testsuite/libffi.call/cls_align_pointer.c,
990
        testsuite/libffi.call/cls_pointer.c,
991
        testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
992
        pointer to integer (intptr_t).
993
        * testsuite/libffi.call/cls_longdouble.c: disable for win64.
994
 
995
2008-07-24  Anthony Green  
996
 
997
        * testsuite/libffi.call/cls_dbls_struct.c,
998
        testsuite/libffi.call/cls_double_va.c,
999
        testsuite/libffi.call/cls_longdouble.c,
1000
        testsuite/libffi.call/cls_longdouble_va.c,
1001
        testsuite/libffi.call/cls_pointer.c,
1002
        testsuite/libffi.call/cls_pointer_stack.c,
1003
        testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1004
        compiler warnings.
1005
 
1006
2008-03-04  Anthony Green  
1007
            Blake Chaffin
1008
            hos@tamanegi.org
1009
 
1010
        * testsuite/libffi.call/cls_align_longdouble_split2.c
1011
          testsuite/libffi.call/cls_align_longdouble_split.c
1012
          testsuite/libffi.call/cls_dbls_struct.c
1013
          testsuite/libffi.call/cls_double_va.c
1014
          testsuite/libffi.call/cls_longdouble.c
1015
          testsuite/libffi.call/cls_longdouble_va.c
1016
          testsuite/libffi.call/cls_pointer.c
1017
          testsuite/libffi.call/cls_pointer_stack.c
1018
          testsuite/libffi.call/err_bad_abi.c
1019
          testsuite/libffi.call/err_bad_typedef.c
1020
          testsuite/libffi.call/stret_large2.c
1021
          testsuite/libffi.call/stret_large.c
1022
          testsuite/libffi.call/stret_medium2.c
1023
          testsuite/libffi.call/stret_medium.c: New tests from Apple.
1024
 
1025
2009-06-05  Andrew Haley  
1026
 
1027
        * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1028
        libffi.
1029
 
1030
2009-06-04  Andrew Haley  
1031
 
1032
        * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1033
        stdcall changes.
1034
 
1035
2008-02-26  Anthony Green  
1036
            Thomas Heller  
1037
 
1038
        * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1039
        comment.
1040
 
1041
2008-02-03  Timothy Wall  
1042
 
1043
        * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1044
          offset based on code pointer, not data pointer.
1045
 
1046
2008-01-31  Timothy Wall 
1047
 
1048
        * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1049
        closures.
1050
        * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1051
        closures.
1052
        * src/x86/win32.S: Add assembly for stdcall closure.
1053
        * src/x86/ffi.c: Initialize stdcall closure trampoline.
1054
 
1055
2009-06-04  Andrew Haley  
1056
 
1057
        * include/ffi.h.in: Change void (*)() to void (*)(void).
1058
        * src/x86/ffi.c: Likewise.
1059
 
1060
2009-06-04  Andrew Haley  
1061
 
1062
        * src/powerpc/ppc_closure.S: Insert licence header.
1063
        * src/powerpc/linux64_closure.S: Likewise.
1064
        * src/m68k/sysv.S: Likewise.
1065
 
1066
        * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1067
        * src/powerpc/ffi.c: Likewise.
1068
        * src/powerpc/ffi_darwin.c: Likewise.
1069
        * src/m32r/ffi.c: Likewise.
1070
        * src/sh64/ffi.c: Likewise.
1071
        * src/x86/ffi64.c: Likewise.
1072
        * src/alpha/ffi.c: Likewise.
1073
        * src/alpha/osf.S: Likewise.
1074
        * src/frv/ffi.c: Likewise.
1075
        * src/s390/ffi.c: Likewise.
1076
        * src/pa/ffi.c: Likewise.
1077
        * src/pa/hpux32.S: Likewise.
1078
        * src/ia64/unix.S: Likewise.
1079
        * src/ia64/ffi.c: Likewise.
1080
        * src/sparc/ffi.c: Likewise.
1081
        * src/mips/ffi.c: Likewise.
1082
        * src/sh/ffi.c: Likewise.
1083
 
1084
2008-02-15  David Daney  
1085
 
1086
        * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1087
        Define (conditionally), and use it to include cachectl.h.
1088
        (ffi_prep_closure_loc): Fix cache flushing.
1089
        * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
1090
 
1091
2009-06-04  Andrew Haley  
1092
 
1093
        include/ffi.h.in,
1094
        src/arm/ffitarget.h,
1095
        src/arm/ffi.c,
1096
        src/arm/sysv.S,
1097
        src/powerpc/ffitarget.h,
1098
        src/closures.c,
1099
        src/sh64/ffitarget.h,
1100
        src/sh64/ffi.c,
1101
        src/sh64/sysv.S,
1102
        src/types.c,
1103
        src/x86/ffi64.c,
1104
        src/x86/ffitarget.h,
1105
        src/x86/win32.S,
1106
        src/x86/darwin.S,
1107
        src/x86/ffi.c,
1108
        src/x86/sysv.S,
1109
        src/x86/unix64.S,
1110
        src/alpha/ffitarget.h,
1111
        src/alpha/ffi.c,
1112
        src/alpha/osf.S,
1113
        src/m68k/ffitarget.h,
1114
        src/frv/ffitarget.h,
1115
        src/frv/ffi.c,
1116
        src/s390/ffitarget.h,
1117
        src/s390/sysv.S,
1118
        src/cris/ffitarget.h,
1119
        src/pa/linux.S,
1120
        src/pa/ffitarget.h,
1121
        src/pa/ffi.c,
1122
        src/raw_api.c,
1123
        src/ia64/ffitarget.h,
1124
        src/ia64/unix.S,
1125
        src/ia64/ffi.c,
1126
        src/ia64/ia64_flags.h,
1127
        src/java_raw_api.c,
1128
        src/debug.c,
1129
        src/sparc/v9.S,
1130
        src/sparc/ffitarget.h,
1131
        src/sparc/ffi.c,
1132
        src/sparc/v8.S,
1133
        src/mips/ffitarget.h,
1134
        src/mips/n32.S,
1135
        src/mips/o32.S,
1136
        src/mips/ffi.c,
1137
        src/prep_cif.c,
1138
        src/sh/ffitarget.h,
1139
        src/sh/ffi.c,
1140
        src/sh/sysv.S: Update license text.
1141
 
1142
2009-05-22  Dave Korn  
1143
 
1144
        * src/x86/win32.S (_ffi_closure_STDCALL):  New function.
1145
        (.eh_frame):  Add FDE for it.
1146
 
1147
2009-05-22  Dave Korn  
1148
 
1149
        * configure.ac:  Also check if assembler supports pc-relative
1150
        relocs on X86_WIN32 targets.
1151
        * configure:  Regenerate.
1152
        * src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
1153
        (_ffi_call_SYSV):  Add missing function type symbol .def and
1154
        add EH markup labels.
1155
        (_ffi_call_STDCALL):  Likewise.
1156
        (_ffi_closure_SYSV):  Likewise.
1157
        (_ffi_closure_raw_SYSV):  Likewise.
1158
        (.eh_frame):  Add hand-crafted EH data.
1159
 
1160
2009-04-09  Jakub Jelinek  
1161
 
1162
        * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
1163
        version 3 of the GNU General Public License and to point readers
1164
        at the COPYING3 file and the FSF's license web page.
1165
        * testsuite/libffi.call/call.exp: Likewise.
1166
        * testsuite/libffi.special/special.exp: Likewise.
1167
 
1168
2009-03-01  Ralf Wildenhues  
1169
 
1170
        * configure: Regenerate.
1171
 
1172
2008-12-18  Rainer Orth  
1173
 
1174
        PR libffi/26048
1175
        * configure.ac (HAVE_AS_X86_PCREL): New test.
1176
        * configure: Regenerate.
1177
        * fficonfig.h.in: Regenerate.
1178
        * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
1179
        RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
1180
        RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
1181
        (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1182
        * src/x86/unix64.S (.Lstore_table): Move to .text section.
1183
        (.Lload_table): Likewise.
1184
        (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1185
 
1186
2008-12-18  Ralf Wildenhues  
1187
 
1188
        * configure: Regenerate.
1189
 
1190
2008-11-21  Eric Botcazou  
1191
 
1192
        * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
1193
        signed/unsigned int8/16 return values.
1194
        * src/sparc/v8.S (ffi_call_v8): Likewise.
1195
        (ffi_closure_v8): Likewise.
1196
 
1197
2008-09-26  Peter O'Gorman  
1198
            Steve Ellcey  
1199
 
1200
        * configure: Regenerate for new libtool.
1201
        * Makefile.in: Ditto.
1202
        * include/Makefile.in: Ditto.
1203
        * aclocal.m4: Ditto.
1204
 
1205
2008-08-25  Andreas Tobler  
1206
 
1207
        * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
1208
        FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
1209
        Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
1210
        Adjust copyright notice.
1211
        * src/powerpc/ffi.c: Add two new flags to indicate if we have one
1212
        register or two register to use for FFI_SYSV structs.
1213
        (ffi_prep_cif_machdep): Pass the right register flag introduced above.
1214
        (ffi_closure_helper_SYSV): Fix the return type for
1215
        FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
1216
        Adjust copyright notice.
1217
 
1218
2008-07-16  Kaz Kojima  
1219
 
1220
        * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
1221
        int.
1222
 
1223
2008-06-17  Ralf Wildenhues  
1224
 
1225
        * configure: Regenerate.
1226
        * include/Makefile.in: Regenerate.
1227
        * testsuite/Makefile.in: Regenerate.
1228
 
1229
2008-06-07  Joseph Myers  
1230
 
1231
        * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
1232
        powerpc-*-beos*): Remove.
1233
        * configure: Regenerate.
1234
 
1235
2008-05-09  Julian Brown  
1236
 
1237
        * Makefile.am (LTLDFLAGS): New.
1238
        (libffi_la_LDFLAGS): Use above.
1239
        * Makefile.in: Regenerate.
1240
 
1241
2008-04-18  Paolo Bonzini  
1242
 
1243
        PR bootstrap/35457
1244
        * aclocal.m4: Regenerate.
1245
        * configure: Regenerate.
1246
 
1247
2008-03-26  Kaz Kojima  
1248
 
1249
        * src/sh/sysv.S: Add .note.GNU-stack on Linux.
1250
        * src/sh64/sysv.S: Likewise.
1251
 
1252
2008-03-26  Daniel Jacobowitz  
1253
 
1254
        * src/arm/sysv.S: Fix ARM comment marker.
1255
 
1256
2008-03-26  Jakub Jelinek  
1257
 
1258
        * src/alpha/osf.S: Add .note.GNU-stack on Linux.
1259
        * src/s390/sysv.S: Likewise.
1260
        * src/powerpc/ppc_closure.S: Likewise.
1261
        * src/powerpc/sysv.S: Likewise.
1262
        * src/x86/unix64.S: Likewise.
1263
        * src/x86/sysv.S: Likewise.
1264
        * src/sparc/v8.S: Likewise.
1265
        * src/sparc/v9.S: Likewise.
1266
        * src/m68k/sysv.S: Likewise.
1267
        * src/arm/sysv.S: Likewise.
1268
 
1269
2008-03-16  Ralf Wildenhues  
1270
 
1271
        * aclocal.m4: Regenerate.
1272
        * configure: Likewise.
1273
        * Makefile.in: Likewise.
1274
        * include/Makefile.in: Likewise.
1275
        * testsuite/Makefile.in: Likewise.
1276
 
1277
2008-02-12  Bjoern Koenig  
1278
            Andreas Tobler  
1279
 
1280
        * configure.ac: Add amd64-*-freebsd* target.
1281
        * configure: Regenerate.
1282
 
1283
2008-01-30  H.J. Lu  
1284
 
1285
        PR libffi/34612
1286
        * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
1287
        returning struct.
1288
 
1289
        * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
1290
        tests.
1291
 
1292
2008-01-24  David Edelsohn  
1293
 
1294
        * configure: Regenerate.
1295
 
1296
2008-01-06  Andreas Tobler  
1297
 
1298
        * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
1299
 
1300
2008-01-05  Andreas Tobler  
1301
 
1302
        PR testsuite/32843
1303
        * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
1304
        signed/unsigned int8/16 for X86_DARWIN.
1305
        Updated copyright info.
1306
        Handle one and two byte structs with special cif->flags.
1307
        * src/x86/ffitarget.h: Add special types for one and two byte structs.
1308
        Updated copyright info.
1309
        * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
1310
        sysv.S
1311
        Remove code to pop args from the stack after call.
1312
        Special-case signed/unsigned for int8/16, one and two byte structs.
1313
        (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1314
        FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1315
        FFI_TYPE_SINT32.
1316
        Updated copyright info.
1317
 
1318
2007-12-08  David Daney  
1319
 
1320
        * src/mips/n32.S (ffi_call_N32):  Replace dadd with ADDU, dsub with
1321
        SUBU, add with ADDU and use smaller code sequences.
1322
 
1323
2007-12-07  David Daney  
1324
 
1325
        * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
1326
        type.
1327
 
1328
2007-12-06  David Daney  
1329
 
1330
        * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
1331
        defined.
1332
        (ffi_java_raw): New typedef.
1333
        (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
1334
        ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
1335
        ffi_java_raw.
1336
        (ffi_java_raw_closure) : Same.
1337
        (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
1338
        parameter types.
1339
        * src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
1340
        FFI_SIZEOF_JAVA_RAW.
1341
        (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
1342
        Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
1343
        sizeof(ffi_java_raw) for alignment calculations.
1344
        (ffi_java_ptrarray_to_raw): Same.
1345
        (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
1346
        if FFI_SIZEOF_JAVA_RAW == 4.
1347
        (ffi_java_raw_to_rvalue): Same.
1348
        (ffi_java_raw_call): Change type of raw to ffi_java_raw.
1349
        (ffi_java_translate_args): Same.
1350
        (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
1351
        parameter types.
1352
        * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
1353
 
1354
2007-12-06  David Daney  
1355
 
1356
        * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
1357
        pointer values.
1358
 
1359
2007-12-01  Andreas Tobler  
1360
 
1361
        PR libffi/31937
1362
        * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
1363
        Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
1364
        * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
1365
        set the NUM_FPR_ARG_REGISTERS according to.
1366
        Add support for potential soft-float support under hard-float
1367
        architecture.
1368
        (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
1369
        FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
1370
        to the FFI_LINUX_SOFT_FLOAT ABI.
1371
        (ffi_prep_cif_machdep): Likewise.
1372
        (ffi_closure_helper_SYSV): Likewise.
1373
        * src/powerpc/ppc_closure.S: Make sure not to store float/double
1374
        on archs where __NO_FPRS__ is true.
1375
        Add FFI_TYPE_UINT128 support.
1376
        * src/powerpc/sysv.S: Add support for soft-float long-double-128.
1377
        Adjust copyright notice.
1378
 
1379
2007-11-25  Andreas Tobler  
1380
 
1381
        * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
1382
        * include/ffi_common.h: ... here.
1383
        Update copyright.
1384
 
1385
2007-11-17  Andreas Tobler  
1386
 
1387
        * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
1388
        * src/powerpc/linux64.S: Likewise.
1389
        * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
1390
        * testsuite/libffi.call/return_ldl.c: New test.
1391
 
1392
2007-09-04    
1393
 
1394
        * src/arm/sysv.S (UNWIND): New.
1395
        (Whole file): Conditionally compile unwinder directives.
1396
        * src/arm/sysv.S: Add unwinder directives.
1397
 
1398
        * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
1399
        Only treat r0 as a struct address if we're actually returning a
1400
        struct by address.
1401
        Only copy the bytes that are actually within a struct.
1402
        (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
1403
        is returned in r0, not passed by address.
1404
        (ffi_call): Allocate a word-sized temporary for the case where
1405
        a composite is returned in r0.
1406
        (ffi_prep_incoming_args_SYSV): Align as necessary.
1407
 
1408
2007-08-05  Steven Newbury  
1409
 
1410
        * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
1411
        directly using the sys_cacheflush syscall.
1412
 
1413
2007-07-27  Andrew Haley  
1414
 
1415
        * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
1416
 
1417
2007-09-03  Maciej W. Rozycki  
1418
 
1419
        * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
1420
        * configure.ac: Likewise.
1421
        * Makefile.in: Regenerate.
1422
        * include/Makefile.in: Likewise.
1423
        * testsuite/Makefile.in: Likewise.
1424
        * configure: Likewise.
1425
 
1426
2007-08-24  David Daney  
1427
 
1428
        * testsuite/libffi.call/return_sl.c: New test.
1429
 
1430
2007-08-10  David Daney  
1431
 
1432
        * testsuite/libffi.call/cls_multi_ushort.c,
1433
        testsuite/libffi.call/cls_align_uint16.c,
1434
        testsuite/libffi.call/nested_struct1.c,
1435
        testsuite/libffi.call/nested_struct3.c,
1436
        testsuite/libffi.call/cls_7_1_byte.c,
1437
        testsuite/libffi.call/nested_struct5.c,
1438
        testsuite/libffi.call/cls_double.c,
1439
        testsuite/libffi.call/nested_struct7.c,
1440
        testsuite/libffi.call/cls_sint.c,
1441
        testsuite/libffi.call/nested_struct9.c,
1442
        testsuite/libffi.call/cls_20byte1.c,
1443
        testsuite/libffi.call/cls_multi_sshortchar.c,
1444
        testsuite/libffi.call/cls_align_sint64.c,
1445
        testsuite/libffi.call/cls_3byte2.c,
1446
        testsuite/libffi.call/cls_multi_schar.c,
1447
        testsuite/libffi.call/cls_multi_uchar.c,
1448
        testsuite/libffi.call/cls_19byte.c,
1449
        testsuite/libffi.call/cls_9byte1.c,
1450
        testsuite/libffi.call/cls_align_float.c,
1451
        testsuite/libffi.call/closure_fn1.c,
1452
        testsuite/libffi.call/problem1.c,
1453
        testsuite/libffi.call/closure_fn3.c,
1454
        testsuite/libffi.call/cls_sshort.c,
1455
        testsuite/libffi.call/closure_fn5.c,
1456
        testsuite/libffi.call/cls_align_double.c,
1457
        testsuite/libffi.call/nested_struct.c,
1458
        testsuite/libffi.call/cls_2byte.c,
1459
        testsuite/libffi.call/nested_struct10.c,
1460
        testsuite/libffi.call/cls_4byte.c,
1461
        testsuite/libffi.call/cls_6byte.c,
1462
        testsuite/libffi.call/cls_8byte.c,
1463
        testsuite/libffi.call/cls_multi_sshort.c,
1464
        testsuite/libffi.call/cls_align_sint16.c,
1465
        testsuite/libffi.call/cls_align_uint32.c,
1466
        testsuite/libffi.call/cls_20byte.c,
1467
        testsuite/libffi.call/cls_float.c,
1468
        testsuite/libffi.call/nested_struct2.c,
1469
        testsuite/libffi.call/cls_5_1_byte.c,
1470
        testsuite/libffi.call/nested_struct4.c,
1471
        testsuite/libffi.call/cls_24byte.c,
1472
        testsuite/libffi.call/nested_struct6.c,
1473
        testsuite/libffi.call/cls_64byte.c,
1474
        testsuite/libffi.call/nested_struct8.c,
1475
        testsuite/libffi.call/cls_uint.c,
1476
        testsuite/libffi.call/cls_multi_ushortchar.c,
1477
        testsuite/libffi.call/cls_schar.c,
1478
        testsuite/libffi.call/cls_uchar.c,
1479
        testsuite/libffi.call/cls_align_uint64.c,
1480
        testsuite/libffi.call/cls_ulonglong.c,
1481
        testsuite/libffi.call/cls_align_longdouble.c,
1482
        testsuite/libffi.call/cls_1_1byte.c,
1483
        testsuite/libffi.call/cls_12byte.c,
1484
        testsuite/libffi.call/cls_3_1byte.c,
1485
        testsuite/libffi.call/cls_3byte1.c,
1486
        testsuite/libffi.call/cls_4_1byte.c,
1487
        testsuite/libffi.call/cls_6_1_byte.c,
1488
        testsuite/libffi.call/cls_16byte.c,
1489
        testsuite/libffi.call/cls_18byte.c,
1490
        testsuite/libffi.call/closure_fn0.c,
1491
        testsuite/libffi.call/cls_9byte2.c,
1492
        testsuite/libffi.call/closure_fn2.c,
1493
        testsuite/libffi.call/closure_fn4.c,
1494
        testsuite/libffi.call/cls_ushort.c,
1495
        testsuite/libffi.call/closure_fn6.c,
1496
        testsuite/libffi.call/cls_5byte.c,
1497
        testsuite/libffi.call/cls_align_pointer.c,
1498
        testsuite/libffi.call/cls_7byte.c,
1499
        testsuite/libffi.call/cls_align_sint32.c,
1500
        testsuite/libffi.special/unwindtest_ffi_call.cc,
1501
        testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
1502
 
1503
2007-08-10  David Daney  
1504
 
1505
        PR libffi/28313
1506
        * configure.ac: Don't treat mips64 as a special case.
1507
        * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
1508
        * configure: Regenerate
1509
        * Makefile.in: Ditto.
1510
        * fficonfig.h.in: Ditto.
1511
        * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
1512
        (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
1513
        (FFI_DEFAULT_ABI): Set for n64 case.
1514
        (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
1515
        * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
1516
        (ffi_closure_N32): New function.
1517
        (.eh_frame): New section
1518
        * src/mips/o32.S: Clean up comments.
1519
        (ffi_closure_O32): Pass ffi_closure parameter in $12.
1520
        * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
1521
        _MIPS_SIM == _ABIN32 throughout.
1522
        (FFI_MIPS_STOP_HERE): New, use in place of
1523
        ffi_stop_here.
1524
        (ffi_prep_args): Use unsigned long to hold pointer values.  Rewrite
1525
        to support n32/n64 ABIs.
1526
        (calc_n32_struct_flags): Rewrite.
1527
        (calc_n32_return_struct_flags): Remove unused variable.  Reverse
1528
        position of flag bits.
1529
        (ffi_prep_cif_machdep): Rewrite n32 portion.
1530
        (ffi_call): Enable for n64.  Add special handling for small structure
1531
        return values.
1532
        (ffi_prep_closure_loc): Add n32 and n64 support.
1533
        (ffi_closure_mips_inner_O32): Add cast to silence warning.
1534
        (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
1535
 
1536
2007-08-08  David Daney  
1537
 
1538
        * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
1539
        * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
1540
        specifiers.
1541
        * testsuite/libffi.call/nested_struct1.c (main): Ditto.
1542
        * testsuite/libffi.call/cls_sint.c (main): Ditto.
1543
        * testsuite/libffi.call/nested_struct9.c (main): Ditto.
1544
        * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
1545
        * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
1546
        * testsuite/libffi.call/closure_fn1.c (main): Ditto.
1547
        * testsuite/libffi.call/closure_fn3.c (main): Ditto.
1548
        * testsuite/libffi.call/return_dbl2.c (main): Ditto.
1549
        * testsuite/libffi.call/cls_sshort.c (main): Ditto.
1550
        * testsuite/libffi.call/return_fl3.c (main): Ditto.
1551
        * testsuite/libffi.call/closure_fn5.c (main): Ditto.
1552
        * testsuite/libffi.call/nested_struct.c (main): Ditto.
1553
        * testsuite/libffi.call/nested_struct10.c (main): Ditto.
1554
        * testsuite/libffi.call/return_ll1.c (main): Ditto.
1555
        * testsuite/libffi.call/cls_8byte.c (main): Ditto.
1556
        * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
1557
        * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
1558
        * testsuite/libffi.call/cls_20byte.c (main): Ditto.
1559
        * testsuite/libffi.call/nested_struct2.c (main): Ditto.
1560
        * testsuite/libffi.call/cls_24byte.c (main): Ditto.
1561
        * testsuite/libffi.call/nested_struct6.c (main): Ditto.
1562
        * testsuite/libffi.call/cls_uint.c (main): Ditto.
1563
        * testsuite/libffi.call/cls_12byte.c (main): Ditto.
1564
        * testsuite/libffi.call/cls_16byte.c (main): Ditto.
1565
        * testsuite/libffi.call/closure_fn0.c (main): Ditto.
1566
        * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
1567
        * testsuite/libffi.call/closure_fn2.c (main): Ditto.
1568
        * testsuite/libffi.call/return_dbl1.c (main): Ditto.
1569
        * testsuite/libffi.call/closure_fn4.c (main): Ditto.
1570
        * testsuite/libffi.call/closure_fn6.c (main): Ditto.
1571
        * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
1572
 
1573
2007-08-07  Andrew Haley  
1574
 
1575
        * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
1576
        checkin.
1577
 
1578
2007-08-06  Andrew Haley  
1579
 
1580
        PR testsuite/32843
1581
        * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1582
        FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1583
        FFI_TYPE_SINT32.
1584
 
1585
2007-08-02  David Daney  
1586
 
1587
        * testsuite/libffi.call/return_ul.c (main): Define return type as
1588
        ffi_arg.  Use proper printf conversion specifier.
1589
 
1590
2007-07-30  Andrew Haley  
1591
 
1592
        PR testsuite/32843
1593
        * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
1594
        signed/unsigned int8/16.
1595
        * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
1596
        Use a jump table.
1597
        Remove code to pop args from the stack after call.
1598
        Special-case signed/unsigned int8/16.
1599
        * testsuite/libffi.call/return_sc.c (main): Revert.
1600
 
1601
2007-07-26  Richard Guenther  
1602
 
1603
        PR testsuite/32843
1604
        * testsuite/libffi.call/return_sc.c (main): Verify call
1605
        result as signed char, not ffi_arg.
1606
 
1607
2007-07-16  Rainer Orth  
1608
 
1609
        * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
1610
        * configure: Regenerate.
1611
 
1612
2007-07-11  David Daney  
1613
 
1614
        * src/mips/ffi.c: Don't include sys/cachectl.h.
1615
        (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
1616
        cacheflush().
1617
 
1618
2007-05-18  Aurelien Jarno  
1619
 
1620
        * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
1621
        from (ffi_prep_closure): ... this.
1622
        (FFI_INIT_TRAMPOLINE): Adjust.
1623
 
1624
2005-12-31  Phil Blundell  
1625
 
1626
        * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
1627
        ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
1628
        * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
1629
        * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1630
        (FFI_CLOSURES): Enable closure support.
1631
 
1632
2007-07-03  Andrew Haley  
1633
 
1634
        * testsuite/libffi.call/cls_multi_ushort.c,
1635
        testsuite/libffi.call/cls_align_uint16.c,
1636
        testsuite/libffi.call/nested_struct1.c,
1637
        testsuite/libffi.call/nested_struct3.c,
1638
        testsuite/libffi.call/cls_7_1_byte.c,
1639
        testsuite/libffi.call/cls_double.c,
1640
        testsuite/libffi.call/nested_struct5.c,
1641
        testsuite/libffi.call/nested_struct7.c,
1642
        testsuite/libffi.call/cls_sint.c,
1643
        testsuite/libffi.call/nested_struct9.c,
1644
        testsuite/libffi.call/cls_20byte1.c,
1645
        testsuite/libffi.call/cls_multi_sshortchar.c,
1646
        testsuite/libffi.call/cls_align_sint64.c,
1647
        testsuite/libffi.call/cls_3byte2.c,
1648
        testsuite/libffi.call/cls_multi_schar.c,
1649
        testsuite/libffi.call/cls_multi_uchar.c,
1650
        testsuite/libffi.call/cls_19byte.c,
1651
        testsuite/libffi.call/cls_9byte1.c,
1652
        testsuite/libffi.call/cls_align_float.c,
1653
        testsuite/libffi.call/closure_fn1.c,
1654
        testsuite/libffi.call/problem1.c,
1655
        testsuite/libffi.call/closure_fn3.c,
1656
        testsuite/libffi.call/cls_sshort.c,
1657
        testsuite/libffi.call/closure_fn5.c,
1658
        testsuite/libffi.call/cls_align_double.c,
1659
        testsuite/libffi.call/cls_2byte.c,
1660
        testsuite/libffi.call/nested_struct.c,
1661
        testsuite/libffi.call/nested_struct10.c,
1662
        testsuite/libffi.call/cls_4byte.c,
1663
        testsuite/libffi.call/cls_6byte.c,
1664
        testsuite/libffi.call/cls_8byte.c,
1665
        testsuite/libffi.call/cls_multi_sshort.c,
1666
        testsuite/libffi.call/cls_align_uint32.c,
1667
        testsuite/libffi.call/cls_align_sint16.c,
1668
        testsuite/libffi.call/cls_float.c,
1669
        testsuite/libffi.call/cls_20byte.c,
1670
        testsuite/libffi.call/cls_5_1_byte.c,
1671
        testsuite/libffi.call/nested_struct2.c,
1672
        testsuite/libffi.call/cls_24byte.c,
1673
        testsuite/libffi.call/nested_struct4.c,
1674
        testsuite/libffi.call/nested_struct6.c,
1675
        testsuite/libffi.call/cls_64byte.c,
1676
        testsuite/libffi.call/nested_struct8.c,
1677
        testsuite/libffi.call/cls_uint.c,
1678
        testsuite/libffi.call/cls_multi_ushortchar.c,
1679
        testsuite/libffi.call/cls_schar.c,
1680
        testsuite/libffi.call/cls_uchar.c,
1681
        testsuite/libffi.call/cls_align_uint64.c,
1682
        testsuite/libffi.call/cls_ulonglong.c,
1683
        testsuite/libffi.call/cls_align_longdouble.c,
1684
        testsuite/libffi.call/cls_1_1byte.c,
1685
        testsuite/libffi.call/cls_12byte.c,
1686
        testsuite/libffi.call/cls_3_1byte.c,
1687
        testsuite/libffi.call/cls_3byte1.c,
1688
        testsuite/libffi.call/cls_4_1byte.c,
1689
        testsuite/libffi.call/cls_6_1_byte.c,
1690
        testsuite/libffi.call/cls_16byte.c,
1691
        testsuite/libffi.call/cls_18byte.c,
1692
        testsuite/libffi.call/closure_fn0.c,
1693
        testsuite/libffi.call/cls_9byte2.c,
1694
        testsuite/libffi.call/closure_fn2.c,
1695
        testsuite/libffi.call/closure_fn4.c,
1696
        testsuite/libffi.call/cls_ushort.c,
1697
        testsuite/libffi.call/closure_fn6.c,
1698
        testsuite/libffi.call/cls_5byte.c,
1699
        testsuite/libffi.call/cls_align_pointer.c,
1700
        testsuite/libffi.call/cls_7byte.c,
1701
        testsuite/libffi.call/cls_align_sint32.c,
1702
        testsuite/libffi.special/unwindtest_ffi_call.cc,
1703
        testsuite/libffi.special/unwindtest.cc: Enable for ARM.
1704
 
1705
2007-07-05  H.J. Lu  
1706
 
1707
        * aclocal.m4: Regenerated.
1708
 
1709
2007-06-02  Paolo Bonzini  
1710
 
1711
        * configure: Regenerate.
1712
 
1713
2007-05-23  Steve Ellcey  
1714
 
1715
        * Makefile.in: Regenerate.
1716
        * configure: Regenerate.
1717
        * aclocal.m4: Regenerate.
1718
        * include/Makefile.in: Regenerate.
1719
        * testsuite/Makefile.in: Regenerate.
1720
 
1721
2007-05-10  Roman Zippel 
1722
 
1723
        * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
1724
        ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
1725
        * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
1726
        * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1727
        (FFI_CLOSURES): Enable closure support.
1728
 
1729
2007-05-10  Roman Zippel 
1730
 
1731
        * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
1732
        * configure: Regenerate.
1733
        * fficonfig.h.in: Regenerate.
1734
        * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
1735
        CFI_OFFSET,CFI_DEF_CFA): New macros.
1736
        (ffi_call_SYSV): Add callframe annotation.
1737
 
1738
2007-05-10  Roman Zippel 
1739
 
1740
        * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
1741
        numerous test suite failures.
1742
        * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
1743
 
1744
2007-04-11  Paolo Bonzini  
1745
 
1746
        * Makefile.am (EXTRA_DIST): Bring up to date.
1747
        * Makefile.in: Regenerate.
1748
        * src/frv/eabi.S: Remove RCS keyword.
1749
 
1750
2007-04-06  Richard Henderson  
1751
 
1752
        * configure.ac: Tidy target case.
1753
        (HAVE_LONG_DOUBLE): Allow the target to override.
1754
        * configure: Regenerate.
1755
        * include/ffi.h.in: Don't define ffi_type_foo if
1756
        LIBFFI_HIDE_BASIC_TYPES is defined.
1757
        (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
1758
        to ffi_type_double.
1759
        * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
1760
        (FFI_TYPEDEF, ffi_type_void): Mark the data const.
1761
        (ffi_type_longdouble): Special case for Alpha.  Don't define
1762
        if long double == double.
1763
 
1764
        * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1765
        (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1766
        (ffi_call, ffi_closure_osf_inner): Likewise.
1767
        (ffi_closure_osf_inner): Likewise.  Mark hidden.
1768
        (ffi_call_osf, ffi_closure_osf): Mark hidden.
1769
        * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1770
        * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1771
        (load_table): Handle 128-bit long double.
1772
 
1773
        * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1774
 
1775
2007-04-06  Tom Tromey  
1776
 
1777
        PR libffi/31491:
1778
        * README: Fixed bug in example.
1779
 
1780
2007-04-03  Jakub Jelinek  
1781
 
1782
        * src/closures.c: Include sys/statfs.h.
1783
        (_GNU_SOURCE): Define on Linux.
1784
        (FFI_MMAP_EXEC_SELINUX): Define.
1785
        (selinux_enabled): New variable.
1786
        (selinux_enabled_check): New function.
1787
        (is_selinux_enabled): Define.
1788
        (dlmmap): Use it.
1789
 
1790
2007-03-24  Uros Bizjak  
1791
 
1792
        * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1793
        Use 'volatile float sum' to create sum of floats to avoid false
1794
        negative due to excess precision on ix86 targets.
1795
        (main): Ditto.
1796
 
1797
2007-03-08  Alexandre Oliva  
1798
 
1799
        * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1800
        patch.
1801
        (ffi_prep_closure_loc): Remove unneeded casts.  Add needed ones.
1802
 
1803
2007-03-07  Alexandre Oliva  
1804
 
1805
        * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1806
        (ffi_prep_closure_loc): New.
1807
        (ffi_prep_raw_closure_loc): New.
1808
        (ffi_prep_java_raw_closure_loc): New.
1809
        * src/closures.c: New file.
1810
        * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1811
        Replace sflags with exec_offset.
1812
        [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1813
        sub_segment_exec_offset): New macros.
1814
        (get_segment_flags, set_segment_flags, check_segment_merge): New
1815
        macros.
1816
        (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1817
        (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1818
        destroy_mspace): Use new macros.
1819
        (sys_alloc): Silence warning.
1820
        * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1821
        * Makefile.in: Rebuilt.
1822
        * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1823
        terms of ffi_prep_closure_loc.
1824
        * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1825
        from...
1826
        (ffi_prep_raw_closure): ... this.  Re-implement in terms of the
1827
        renamed version.
1828
        * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1829
        adjusted from...
1830
        (ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
1831
        the renamed version.
1832
        * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1833
        (ffi_prep_closure): ... this.
1834
        * src/pa/ffi.c: Likewise.
1835
        * src/cris/ffi.c: Likewise.  Adjust.
1836
        * src/frv/ffi.c: Likewise.
1837
        * src/ia64/ffi.c: Likewise.
1838
        * src/mips/ffi.c: Likewise.
1839
        * src/powerpc/ffi_darwin.c: Likewise.
1840
        * src/s390/ffi.c: Likewise.
1841
        * src/sh/ffi.c: Likewise.
1842
        * src/sh64/ffi.c: Likewise.
1843
        * src/sparc/ffi.c: Likewise.
1844
        * src/x86/ffi64.c: Likewise.
1845
        * src/x86/ffi.c: Likewise.
1846
        (FFI_INIT_TRAMPOLINE): Adjust.
1847
        (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1848
        (ffi_prep_raw_closure): ... this.
1849
        * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1850
        (ffi_prep_closure): ... this.
1851
        (flush_icache): Adjust.
1852
 
1853
2007-03-07  Alexandre Oliva  
1854
 
1855
        * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1856
        Lea's malloc.
1857
 
1858
2007-03-01  Brooks Moses  
1859
 
1860
        * Makefile.am: Add dummy install-pdf target.
1861
        * Makefile.in: Regenerate
1862
 
1863
2007-02-13  Andreas Krebbel  
1864
 
1865
        * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1866
        ffi_closure_helper_SYSV): Add long double handling.
1867
 
1868
2007-02-02  Jakub Jelinek  
1869
 
1870
        * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1871
        immediately after bctrl instruction.
1872
 
1873
2007-01-18  Alexandre Oliva  
1874
 
1875
        * Makefile.am (all-recursive, install-recursive,
1876
        mostlyclean-recursive, clean-recursive, distclean-recursive,
1877
        maintainer-clean-recursive): Add missing targets.
1878
        * Makefile.in: Rebuilt.
1879
 
1880
2006-12-14  Andreas Tobler  
1881
 
1882
        * configure.ac: Add TARGET for x86_64-*-darwin*.
1883
        * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1884
        for X86_DARWIN.
1885
        * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1886
        * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1887
        * configure: Regenerate.
1888
        * Makefile.in: Regenerate.
1889
        * include/Makefile.in: Regenerate.
1890
        * testsuite/Makefile.in: Regenerate.
1891
        * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1892
        ffi_call only.
1893
 
1894
2006-12-13  Andreas Tobler 
1895
 
1896
        * aclocal.m4: Regenerate with aclocal -I .. as written in the
1897
        Makefile.am.
1898
 
1899
2006-10-31  Geoffrey Keating  
1900
 
1901
        * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
1902
        (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
1903
        Darwin.
1904
        * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
1905
        * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
1906
 
1907
2006-10-10  Paolo Bonzini  
1908
            Sandro Tolaini  
1909
 
1910
        * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
1911
        conditional.
1912
        * configure: Regenerated.
1913
        * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
1914
        (EXTRA_DIST): Add src/x86/darwin.S.
1915
        * Makefile.in: Regenerated.
1916
        * include/Makefile.in: Regenerated.
1917
        * testsuite/Makefile.in: Regenerated.
1918
 
1919
        * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
1920
        X86_WIN32, and additionally align stack to 16 bytes.
1921
        * src/x86/darwin.S: New, based on sysv.S.
1922
        * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
1923
 
1924
2006-09-12  David Daney  
1925
 
1926
        PR libffi/23935
1927
        * include/Makefile.am: Install both ffi.h and ffitarget.h in
1928
        $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
1929
        * aclocal.m4: Regenerated for automake 1.9.6.
1930
        * Makefile.in: Regenerated.
1931
        * include/Makefile.in: Regenerated.
1932
        * testsuite/Makefile.in: Regenerated.
1933
 
1934
2006-08-17  Andreas Tobler  
1935
 
1936
        * include/ffi_common.h (struct): Revert accidental commit.
1937
 
1938
2006-08-15  Andreas Tobler  
1939
 
1940
        * include/ffi_common.h: Remove lint directives.
1941
        * include/ffi.h.in: Likewise.
1942
 
1943
2006-07-25  Torsten Schoenfeld  
1944
 
1945
        * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
1946
        for 32-bit architectures.
1947
        * testsuite/libffi.call/return_ul.c: New test case.
1948
 
1949
2006-07-19  David Daney  
1950
 
1951
        * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
1952
        xfail remains for mips64.
1953
 
1954
2006-05-23  Carlos O'Donell  
1955
 
1956
        * Makefile.am: Add install-html target. Add install-html to .PHONY
1957
        * Makefile.in: Regenerate.
1958
        * aclocal.m4: Regenerate.
1959
        * include/Makefile.in: Regenerate.
1960
        * testsuite/Makefile.in: Regenerate.
1961
 
1962
2006-05-18  John David Anglin  
1963
 
1964
        * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
1965
        stack slot.
1966
 
1967
2006-04-22  Andreas Tobler  
1968
 
1969
        * README: Remove notice about 'Crazy Comments'.
1970
        * src/debug.c: Remove lint directives. Cleanup white spaces.
1971
        * src/java_raw_api.c: Likewise.
1972
        * src/prep_cif.c: Likewise.
1973
        * src/raw_api.c: Likewise.
1974
        * src/ffitest.c: Delete. No longer needed, all test cases migrated
1975
        to the testsuite.
1976
        * src/arm/ffi.c: Remove lint directives.
1977
        * src/m32r/ffi.c: Likewise.
1978
        * src/pa/ffi.c: Likewise.
1979
        * src/powerpc/ffi.c: Likewise.
1980
        * src/powerpc/ffi_darwin.c: Likewise.
1981
        * src/sh/ffi.c: Likewise.
1982
        * src/sh64/ffi.c: Likewise.
1983
        * src/x86/ffi.c: Likewise.
1984
        * testsuite/libffi.call/float2.c: Likewise.
1985
        * testsuite/libffi.call/promotion.c: Likewise.
1986
        * testsuite/libffi.call/struct1.c: Likewise.
1987
 
1988
2006-04-13  Andreas Tobler  
1989
 
1990
        * src/pa/hpux32.S: Correct unwind offset calculation for
1991
        ffi_closure_pa32.
1992
        * src/pa/linux.S: Likewise.
1993
 
1994
2006-04-12  James E Wilson  
1995
 
1996
        PR libgcj/26483
1997
        * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
1998
        (hfa_type_load): Call stf_spill.
1999
        (hfa_type_store): Call ldf_fill.
2000
        (ffi_call): Adjust calls to above routines.  Add local temps for
2001
        macro result.
2002
 
2003
2006-04-10  Matthias Klose  
2004
 
2005
        * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2006
        directory names containing underscores.
2007
 
2008
2006-04-07  James E Wilson  
2009
 
2010
        * testsuite/libffi.call/float4.c: New testcase.
2011
 
2012
2006-04-05  John David Anglin  
2013
            Andreas Tobler  
2014
 
2015
        * Makefile.am: Add PA_HPUX port.
2016
        * Makefile.in: Regenerate.
2017
        * include/Makefile.in: Likewise.
2018
        * testsuite/Makefile.in: Likewise.
2019
        * configure.ac: Add PA_HPUX rules.
2020
        * configure: Regenerate.
2021
        * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2022
        Add PA_HPUX and PA64_HPUX.
2023
        Rename FFI_LINUX ABI to FFI_PA32 ABI.
2024
        (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2025
        (FFI_TYPE_SMALL_STRUCT2): Define.
2026
        (FFI_TYPE_SMALL_STRUCT4): Likewise.
2027
        (FFI_TYPE_SMALL_STRUCT8): Likewise.
2028
        (FFI_TYPE_SMALL_STRUCT3): Redefine.
2029
        (FFI_TYPE_SMALL_STRUCT5): Likewise.
2030
        (FFI_TYPE_SMALL_STRUCT6): Likewise.
2031
        (FFI_TYPE_SMALL_STRUCT7): Likewise.
2032
        * src/pa/ffi.c (ROUND_DOWN): Delete.
2033
        (fldw, fstw, fldd, fstd): Use '__asm__'.
2034
        (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2035
        FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2036
        (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2037
        Simplify incrementing of stack slot variable. Change type of local
2038
        'n' to unsigned int.
2039
        (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2040
        double on PA_HPUX.
2041
        (ffi_prep_cif_machdep): Likewise.
2042
        (ffi_call): Likewise.
2043
        (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2044
        return type to ffi_status. Simplify incrementing of stack slot
2045
        variable. Only copy floating point argument registers when PA_LINUX
2046
        is true. Reformat debug statement.
2047
        Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2048
        FFI_TYPE_SMALL_STRUCT8.
2049
        (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2050
        declaration.
2051
        (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2052
        Add nops to cache flush.  Add trampoline for PA_HPUX.
2053
        * src/pa/hpux32.S: New file.
2054
        * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2055
        ffi_prep_args_LINUX to ffi_prep_args_pa32.
2056
        Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2057
        unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2058
        argument type checks so that common argument types appear first.
2059
        (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2060
        ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2061
 
2062
2006-03-24  Alan Modra  
2063
 
2064
        * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
2065
        for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
2066
        * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2067
        FFI_TYPE_LONGDOUBLE.
2068
        (ffi_prep_args64): Assert using IBM extended double.
2069
        (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2070
        Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2071
        (ffi_call): Handle FFI_LINUX.
2072
        (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2073
        gpr3 return pointer as for struct return.  Handle FFI_LINUX
2074
        FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
2075
        unnecessarily.
2076
        * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2077
        for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
2078
        Don't use r6 as pointer to results, instead use sp offset.  Don't
2079
        make a special call to load lr with case table address, instead
2080
        use offset from previous call.
2081
        * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2082
        * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2083
        return.
2084
 
2085
2006-03-15  Kaz Kojima  
2086
 
2087
        * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2088
        passed with FP registers correctly.
2089
        (ffi_closure_helper_SYSV): Likewise.
2090
        * src/sh64/sysv.S: Likewise.
2091
 
2092
2006-03-01  Andreas Tobler  
2093
 
2094
        * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2095
        args and userdata unused.
2096
        (closure_test_fn1): Mark cif and userdata unused.
2097
        (main): Remove unused res.
2098
 
2099
2006-02-28  Andreas Tobler  
2100
 
2101
        * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2102
        -O2, -O3, -Os and the warning flags -W -Wall.
2103
        * testsuite/libffi.special/special.exp: Likewise.
2104
        * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2105
        unused parameter unused for gcc or else do nothing.
2106
        * testsuite/libffi.special/ffitestcxx.h: Likewise.
2107
        * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2108
        and userdata unused.
2109
        * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2110
        * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2111
        * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2112
        * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2113
        * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2114
        * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2115
        * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2116
        * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2117
        * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2118
        * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2119
        * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2120
        * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2121
        * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2122
        * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2123
        * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2124
        * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2125
        * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2126
        * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2127
        * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2128
        * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2129
        * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2130
        * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2131
        * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2132
        * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2133
        Likewise.
2134
        * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2135
        Likewise.
2136
        * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2137
        Likewise.
2138
        * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2139
        void* to avoid compiler warning.
2140
        (main): Likewise.
2141
        (cls_struct_align_gn): Mark cif and userdata unused.
2142
        * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2143
        Likewise.
2144
        * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2145
        Likewise.
2146
        * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2147
        Likewise.
2148
        * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
2149
        Likewise.
2150
        * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
2151
        Likewise.
2152
        * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
2153
        * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
2154
        * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
2155
        data unused.
2156
        (main): Cast res_call to silence gcc.
2157
        * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
2158
        data unused.
2159
        (main): Cast res_call to silence gcc.
2160
        * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
2161
        and data unused.
2162
        (main): Cast res_call to silence gcc.
2163
        * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
2164
        data unused.
2165
        (main): Cast res_call to silence gcc.
2166
        * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
2167
        data unused.
2168
        (main): Cast res_call to silence gcc.
2169
        * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
2170
        and data unused.
2171
        (main): Cast res_call to silence gcc.
2172
        * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
2173
        userdata unused.
2174
        (cls_ret_schar_fn): Cast printf parameter to silence gcc.
2175
        * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
2176
        userdata unused.
2177
        (cls_ret_sint_fn): Cast printf parameter to silence gcc.
2178
        * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
2179
        userdata unused.
2180
        (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
2181
        * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn):  Mark cif and
2182
        userdata unused.
2183
        (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
2184
        * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
2185
        userdata unused.
2186
        (cls_ret_uint_fn): Cast printf parameter to silence gcc.
2187
        * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
2188
        and userdata unused.
2189
        * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
2190
        userdata unused.
2191
        (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
2192
        * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
2193
        * testsuite/libffi.call/float1.c (main): Remove unused variable i.
2194
        Cleanup white spaces.
2195
        * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
2196
        * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
2197
        cif and userdata unused.
2198
        * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
2199
        Likewise.
2200
        * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
2201
        * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
2202
        formatters to silence gcc.
2203
        (B_gn): Mark cif and userdata unused.
2204
        * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
2205
        unused.
2206
        * testsuite/libffi.call/nested_struct4.c: Mention related PR.
2207
        (B_gn): Mark cif and userdata unused.
2208
        * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
2209
        unused.
2210
        * testsuite/libffi.call/nested_struct6.c: Mention related PR.
2211
        (B_gn): Mark cif and userdata unused.
2212
        * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
2213
        unused.
2214
        * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
2215
        * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
2216
        * testsuite/libffi.call/problem1.c (stub): Likewise.
2217
        * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
2218
        gcc.
2219
        * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
2220
        in the last commit for this test case in the test case itself.
2221
        * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
2222
        unused.
2223
        * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
2224
        * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
2225
        * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
2226
        * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
2227
        * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
2228
        * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
2229
 
2230
2006-02-22  Kaz Kojima  
2231
 
2232
        * src/sh/sysv.S: Fix register numbers in the FDE for
2233
        ffi_closure_SYSV.
2234
 
2235
2006-02-20  Andreas Tobler  
2236
 
2237
        * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
2238
        declaration to avoid a false negative on ix86. See PR323.
2239
 
2240
2006-02-18  Kaz Kojima  
2241
 
2242
        * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
2243
        and cast integer to void * if needed.  Update the pointer to
2244
        the FP register saved area correctly.
2245
 
2246
2006-02-17  Andreas Tobler  
2247
 
2248
        * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
2249
        is fixed.
2250
        * testsuite/libffi.call/nested_struct4.c: Likewise.
2251
 
2252
2006-02-16  Andreas Tobler  
2253
 
2254
        * testsuite/libffi.call/return_dbl.c: New test case.
2255
        * testsuite/libffi.call/return_dbl1.c: Likewise.
2256
        * testsuite/libffi.call/return_dbl2.c: Likewise.
2257
        * testsuite/libffi.call/return_fl.c: Likewise.
2258
        * testsuite/libffi.call/return_fl1.c: Likewise.
2259
        * testsuite/libffi.call/return_fl2.c: Likewise.
2260
        * testsuite/libffi.call/return_fl3.c: Likewise.
2261
        * testsuite/libffi.call/closure_fn6.c: Likewise.
2262
 
2263
        * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
2264
        definition.
2265
        * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
2266
        here to be used by other test cases too.
2267
 
2268
        * testsuite/libffi.call/nested_struct10.c: New test case.
2269
        * testsuite/libffi.call/nested_struct9.c: Likewise.
2270
        * testsuite/libffi.call/nested_struct8.c: Likewise.
2271
        * testsuite/libffi.call/nested_struct7.c: Likewise.
2272
        * testsuite/libffi.call/nested_struct6.c: Likewise.
2273
        * testsuite/libffi.call/nested_struct5.c: Likewise.
2274
        * testsuite/libffi.call/nested_struct4.c: Likewise.
2275
 
2276
2006-01-21  Andreas Tobler  
2277
 
2278
        * configure.ac: Enable libffi for sparc64-*-freebsd*.
2279
        * configure: Rebuilt.
2280
 
2281
2006-01-18  Jakub Jelinek  
2282
 
2283
        * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
2284
        instead do the shifting inline.
2285
        * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
2286
        shift count unconditionally.  Simplify load sequences for 1, 2, 3, 4
2287
        and 8 byte structs, for the remaining struct sizes don't call
2288
        __lshrdi3, instead do the shifting inline.
2289
 
2290
2005-12-07  Thiemo Seufer  
2291
 
2292
        * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
2293
        missing parentheses.
2294
        * src/mips/o32.S (ffi_call_O32): Code formatting. Define
2295
        and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
2296
        (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
2297
        A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
2298
        V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
2299
        FA_0_0_OFF2.
2300
        * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
2301
        endianness bugs.
2302
        (ffi_prep_closure): Improve trampoline instruction scheduling.
2303
        (ffi_closure_mips_inner_O32): Fix endianness bugs.
2304
 
2305
2005-12-03  Alan Modra  
2306
 
2307
        * src/powerpc/ffi.c: Formatting.
2308
        (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
2309
        (ffi_prep_args64): Likewise.
2310
 
2311
2005-09-30  Geoffrey Keating  
2312
 
2313
        * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
2314
        darwin, use -shared-libgcc not -lgcc_s, and explain why.
2315
 
2316
2005-09-26  Tom Tromey  
2317
 
2318
        * testsuite/libffi.call/float1.c (value_type): New typedef.
2319
        (CANARY): New define.
2320
        (main): Check for result buffer overflow.
2321
        * src/powerpc/linux64.S: Handle linux64 long double returns.
2322
        * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
2323
        (ffi_prep_cif_machdep): Handle linux64 long double returns.
2324
 
2325
2005-08-25  Alan Modra  
2326
 
2327
        PR target/23404
2328
        * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
2329
        homed fp args.
2330
        (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
2331
 
2332
2005-08-11  Jakub Jelinek  
2333
 
2334
        * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
2335
        (AH_BOTTOM): Add FFI_HIDDEN definition.
2336
        * configure: Rebuilt.
2337
        * fficonfig.h.in: Rebuilt.
2338
        * src/powerpc/ffi.c (hidden): Remove.
2339
        (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
2340
        ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
2341
        * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
2342
        .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
2343
        * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
2344
        add FFI_HIDDEN to its prototype.
2345
        (ffi_closure_SYSV_inner): New.
2346
        * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2347
        * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2348
 
2349
2005-08-10  Alfred M. Szmidt  
2350
 
2351
        PR libffi/21819:
2352
        * configure: Rebuilt.
2353
        * configure.ac: Handle i*86-*-gnu*.
2354
 
2355
2005-08-09  Jakub Jelinek  
2356
 
2357
        * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
2358
        DW_CFA_offset_extended_sf rather than
2359
        DW_CFA_GNU_negative_offset_extended.
2360
        * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
2361
 
2362
2005-07-22  SUGIOKA Toshinobu  
2363
 
2364
        * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
2365
        on sh3.
2366
        (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
2367
        * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
2368
        partially on register.
2369
        (ffi_closure_helper_SYSV): Likewise.
2370
        (ffi_prep_cif_machdep): Don't set too many cif->flags.
2371
 
2372
2005-07-20  Kaz Kojima  
2373
 
2374
        * src/sh/ffi.c (ffi_call): Handle small structures correctly.
2375
        Remove empty line.
2376
        * src/sh64/ffi.c (simple_type): Remove.
2377
        (return_type): Handle small structures correctly.
2378
        (ffi_prep_args): Likewise.
2379
        (ffi_call): Likewise.
2380
        (ffi_closure_helper_SYSV): Likewise.
2381
        * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
2382
        Emit position independent code if PIC and remove wrong datalabel
2383
        prefixes from EH data.
2384
 
2385
2005-07-19  Andreas Tobler  
2386
 
2387
        * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
2388
        * Makefile.in: Regenerate.
2389
        * include/Makefile.in: Likewise.
2390
        * testsuite/Makefile.in: Likewise.
2391
        * configure.ac: Add POWERPC_FREEBSD rules.
2392
        * configure: Regenerate.
2393
        * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
2394
        (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
2395
        * src/powerpc/ffi.c: Add flags to handle small structure returns
2396
        in ffi_call_SYSV.
2397
        (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
2398
        Aka FFI_SYSV.
2399
        (ffi_closure_helper_SYSV): Likewise.
2400
        * src/powerpc/ppc_closure.S: Add return types for small structures.
2401
        * src/powerpc/sysv.S: Add bits to handle small structures for
2402
        final SYSV 4 ABI.
2403
 
2404
2005-07-10  Andreas Tobler  
2405
 
2406
        * testsuite/libffi.call/cls_5_1_byte.c: New test file.
2407
        * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
2408
        * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
2409
 
2410
2005-07-05  Randolph Chung  
2411
 
2412
        * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
2413
        as FFI_TYPE_SMALL_STRUCT3.  Break out handling for 5-7 byte
2414
        structures.  Kill compilation warnings.
2415
        (ffi_closure_inner_LINUX): Print return values as hex in debug
2416
        message.  Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
2417
        Properly handle 5-7 byte structure returns.
2418
        * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
2419
        (FFI_TYPE_SMALL_STRUCT2): Remove.
2420
        (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
2421
        (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
2422
        * src/pa/linux.S: Mark source file as using PA1.1 assembly.
2423
        (checksmst1, checksmst2): Remove.
2424
        (checksmst3): Optimize handling of 3-byte struct returns.
2425
        (checksmst567): Properly handle 5-7 byte struct returns.
2426
 
2427
2005-06-15  Rainer Orth  
2428
 
2429
        PR libgcj/21943
2430
        * src/mips/n32.S: Enforce PIC code.
2431
        * src/mips/o32.S: Likewise.
2432
 
2433
2005-06-15  Rainer Orth  
2434
 
2435
        * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
2436
        * configure: Regenerate.
2437
 
2438
2005-06-01  Alan Modra  
2439
 
2440
        * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
2441
        to call ffi_closure_helper_SYSV.  Append @local instead.
2442
        * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
2443
 
2444
2005-05-17  Kelley Cook  
2445
 
2446
        * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2447
        Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2448
        * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
2449
        * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
2450
        include/Makefile.in, testsuite/Makefile.in: Regenerate.
2451
 
2452
2005-05-09  Mike Stump  
2453
 
2454
        * configure: Regenerate.
2455
 
2456
2005-05-08  Richard Henderson  
2457
 
2458
        PR libffi/21285
2459
        * src/alpha/osf.S: Update unwind into to match code.
2460
 
2461
2005-05-04  Andreas Degert 
2462
            Richard Henderson  
2463
 
2464
        * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
2465
        bit 11 of flags.
2466
        (ffi_call): Mask return type field.  Pass ssecount to ffi_call_unix64.
2467
        (ffi_prep_closure): Set carry bit if sse-used flag set.
2468
        * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
2469
        Only load sse registers if ssecount non-zero.
2470
        (ffi_closure_unix64): Only save sse registers if carry set on entry.
2471
 
2472
2005-04-29  Ralf Corsepius  
2473
 
2474
        * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
2475
        powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
2476
        * configure: Regenerate.
2477
 
2478
2005-04-20  Hans-Peter Nilsson  
2479
 
2480
        * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
2481
        have Tcl8.3-compatible intermediate variable.
2482
 
2483
2005-04-18  Simon Posnjak 
2484
            Hans-Peter Nilsson  
2485
 
2486
        * Makefile.am: Add CRIS support.
2487
        * configure.ac: Likewise.
2488
        * Makefile.in, configure, testsuite/Makefile.in,
2489
        include/Makefile.in: Regenerate.
2490
        * src/cris: New directory.
2491
        * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
2492
        * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
2493
 
2494
        * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
2495
        \r?\n in output tests.
2496
 
2497
2005-04-12  Mike Stump  
2498
 
2499
        * configure: Regenerate.
2500
 
2501
2005-03-30  Hans Boehm  
2502
 
2503
        * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
2504
 
2505
2005-03-30  Steve Ellcey  
2506
 
2507
        * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
2508
        (ffi_sarg) Ditto.
2509
        * src/ia64/unix.S (ffi_closure_unix): Extend gp
2510
        to 64 bits in ILP32 mode.
2511
        Load 64 bits even for short data.
2512
 
2513
2005-03-23  Mike Stump  
2514
 
2515
        * src/powerpc/darwin.S: Update for -m64 multilib.
2516
        * src/powerpc/darwin_closure.S: Likewise.
2517
 
2518
2005-03-21  Zack Weinberg  
2519
 
2520
        * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2521
        Do not set tool_include_dir.
2522
        * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
2523
        Regenerate.
2524
        * include/Makefile.am: Set gcc_version and toollibffidir.
2525
        * include/Makefile.in: Regenerate.
2526
 
2527
2005-02-22  Andrew Haley  
2528
 
2529
        * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
2530
        odd-numbered register pairs for 64-bit integer types.
2531
 
2532
2005-02-23  Andreas Tobler  
2533
 
2534
        PR libffi/20104
2535
        * testsuite/libffi.call/return_ll1.c: New test case.
2536
 
2537
2005-02-11  Janis Johnson  
2538
 
2539
        * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
2540
        * testsuite/libffi.call/float.c: Ditto.
2541
        * testsuite/libffi.call/float2.c: Ditto.
2542
        * testsuite/libffi.call/float3.c: Ditto.
2543
 
2544
2005-02-08  Andreas Tobler  
2545
 
2546
        * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
2547
 
2548
2005-01-12  Eric Botcazou  
2549
 
2550
        * testsuite/libffi.special/special.exp (cxx_options): Add
2551
        -shared-libgcc.
2552
 
2553
2004-12-31  Richard Henderson  
2554
 
2555
        * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
2556
        (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF.  Replace size and
2557
        offset parameters with a type parameter; deduce size and structure
2558
        alignment.  Update all users.
2559
 
2560
2004-12-31  Richard Henderson  
2561
 
2562
        * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
2563
        (FFI_TYPE_LONGDOUBLE): Fix for ia64.
2564
        * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
2565
        into ffi_prep_closure.
2566
        * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
2567
        from scratch.
2568
 
2569
2004-12-27  Richard Henderson  
2570
 
2571
        * src/x86/unix64.S: Fix typo in unwind info.
2572
 
2573
2004-12-25  Richard Henderson  
2574
 
2575
        * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
2576
        (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
2577
        (merge_classes): Check for it.
2578
        (SSE_CLASS_P): New.
2579
        (classify_argument): Pass byte_offset by value; perform all updates
2580
        inside struct case.
2581
        (examine_argument): Add classes argument; handle
2582
        X86_64_COMPLEX_X87_CLASS.
2583
        (ffi_prep_args): Merge into ...
2584
        (ffi_call): ... here.  Share stack frame with ffi_call_unix64.
2585
        (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
2586
        (ffi_fill_return_value): Remove.
2587
        (ffi_prep_closure): Remove dead assert.
2588
        (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
2589
        Rewrite to use struct register_args instead of va_list.  Create
2590
        flags for handling structure returns.
2591
        * src/x86/unix64.S: Remove dead strings.
2592
        (ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
2593
        stack frame with ffi_call.  Handle structure returns properly.
2594
        (float2sse, floatfloat2sse, double2sse): Remove.
2595
        (sse2float, sse2double, sse2floatfloat): Remove.
2596
        (ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
2597
        to handle structure returns properly.
2598
 
2599
2004-12-08  David Edelsohn  
2600
 
2601
        * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
2602
        PICFLAG.
2603
        * Makefile.in: Regenerated.
2604
 
2605
2004-12-02  Richard Sandiford  
2606
 
2607
        * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2608
        * configure, aclocal.m4, Makefile.in: Regenerate.
2609
        * include/Makefile.in, testsuite/Makefile.in: Regenerate.
2610
 
2611
2004-11-29  Kelley Cook  
2612
 
2613
        * configure: Regenerate for libtool change.
2614
 
2615
2004-11-25  Kelley Cook  
2616
 
2617
        * configure: Regenerate for libtool reversion.
2618
 
2619
2004-11-24  Kelley Cook  
2620
 
2621
        * configure: Regenerate for libtool change.
2622
 
2623
2004-11-23  John David Anglin  
2624
 
2625
        * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
2626
 
2627
2004-11-23  Richard Sandiford  
2628
 
2629
        * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
2630
        of jal.  Use an absolute encoding for the frame information.
2631
 
2632
2004-11-23  Kelley Cook  
2633
 
2634
        * Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
2635
        * acinclude.m4: Delete logic for sincludes.
2636
        * aclocal.m4, Makefile.in, configure: Regenerate.
2637
        * include/Makefile: Likewise.
2638
        * testsuite/Makefile: Likewise.
2639
 
2640
2004-11-22  Eric Botcazou  
2641
 
2642
        * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
2643
        on a 8-byte boundary.
2644
        * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
2645
 
2646
2004-10-27  Richard Earnshaw  
2647
 
2648
        * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
2649
        long long values.  Round stack allocation to a multiple of 8 bytes
2650
        for ATPCS compatibility.
2651
        * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
2652
        names.  Handle returning long long types.  Add Thumb and interworking
2653
        support.  Improve soft-float code.
2654
 
2655
2004-10-27  Richard Earnshaw  
2656
 
2657
        * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
2658
        (libffi_exit): New function.
2659
        (libffi_init): Build the testglue wrapper if needed.
2660
 
2661
2004-10-25  Eric Botcazou  
2662
 
2663
        PR other/18138
2664
        * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
2665
 
2666
2004-10-25  Kazuhiro Inaoka 
2667
 
2668
        * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
2669
 
2670
2004-10-20  Kaz Kojima  
2671
 
2672
        * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
2673
        * testsuite/libffi.call/float3.c: New test case.
2674
 
2675
2004-10-18  Kaz Kojima  
2676
 
2677
        * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
2678
        the function returning a structure pointed with R2.
2679
        * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
2680
        the structure return value if T bit set.  Emit position
2681
        independent code and EH data if PIC.
2682
 
2683
2004-10-13  Kazuhiro Inaoka  
2684
 
2685
        * Makefile.am: Add m32r support.
2686
        * configure.ac: Likewise.
2687
        * Makefile.in: Regenerate.
2688
        * confiugre: Regenerate.
2689
        * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
2690
        (uint64, sint64, double, longdouble)
2691
        * src/m32r: New directory.
2692
        * src/m32r/ffi.c: New file.
2693
        * src/m32r/sysv.S: Likewise.
2694
        * src/m32r/ffitarget.h: Likewise.
2695
 
2696
2004-10-02  Kaz Kojima  
2697
 
2698
        * testsuite/libffi.call/negint.c: New test case.
2699
 
2700
2004-09-14  H.J. Lu  
2701
 
2702
        PR libgcj/17465
2703
        * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
2704
        Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
2705
        LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
2706
        DYLD_LIBRARY_PATH.
2707
 
2708
2004-09-05  Andreas Tobler  
2709
 
2710
        * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2711
        * testsuite/libffi.call/promotion.c: Likewise.
2712
        * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2713
        whitespaces.
2714
        * testsuite/libffi.call/return_sc.c: Likewise.
2715
        * testsuite/libffi.call/return_uc.c: Likewise.
2716
 
2717
2004-09-05  Andreas Tobler  
2718
 
2719
        * src/powerpc/darwin.S: Fix comments and identation.
2720
        * src/powerpc/darwin_closure.S: Likewise.
2721
 
2722
2004-09-02  Andreas Tobler  
2723
 
2724
        * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2725
        (ffi_prep_args): Handle longdouble arguments.
2726
        (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2727
        longdouble.
2728
        (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2729
        * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2730
        values.
2731
        * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2732
        * src/types.c: Defined longdouble size and alignment for darwin.
2733
 
2734
2004-09-02  Andreas Tobler  
2735
 
2736
        * src/powerpc/aix.S: Remove whitespaces.
2737
        * src/powerpc/aix_closure.S: Likewise.
2738
        * src/powerpc/asm.h: Likewise.
2739
        * src/powerpc/ffi.c: Likewise.
2740
        * src/powerpc/ffitarget.h: Likewise.
2741
        * src/powerpc/linux64.S: Likewise.
2742
        * src/powerpc/linux64_closure.S: Likewise.
2743
        * src/powerpc/ppc_closure.S: Likewise.
2744
        * src/powerpc/sysv.S: Likewise.
2745
 
2746
2004-08-30  Anthony Green  
2747
 
2748
        * Makefile.am: Add frv support.
2749
        * Makefile.in, testsuite/Makefile.in: Rebuilt.
2750
        * configure.ac: Read configure.host.
2751
        * configure.in: Read configure.host.
2752
        * configure.host: New file.  frv-elf needs libgloss.
2753
        * include/ffi.h.in: Force ffi_closure to have a nice big (8)
2754
        alignment.  This is needed to frv and shouldn't harm the others.
2755
        * include/ffi_common.h (ALIGN_DOWN): New macro.
2756
        * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2757
 
2758
2004-08-24  David Daney  
2759
 
2760
        * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2761
        * testsuite/libffi.call/closure_fn1.c: Likewise.
2762
        * testsuite/libffi.call/closure_fn2.c  Likewise.
2763
        * testsuite/libffi.call/closure_fn3.c: Likewise.
2764
        * testsuite/libffi.call/closure_fn4.c: Likewise.
2765
        * testsuite/libffi.call/closure_fn5.c: Likewise.
2766
        * testsuite/libffi.call/cls_18byte.c: Likewise.
2767
        * testsuite/libffi.call/cls_19byte.c: Likewise.
2768
        * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2769
        * testsuite/libffi.call/cls_20byte.c: Likewise.
2770
        * testsuite/libffi.call/cls_20byte1.c: Likewise.
2771
        * testsuite/libffi.call/cls_24byte.c: Likewise.
2772
        * testsuite/libffi.call/cls_2byte.c: Likewise.
2773
        * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2774
        * testsuite/libffi.call/cls_3byte1.c: Likewise.
2775
        * testsuite/libffi.call/cls_3byte2.c: Likewise.
2776
        * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2777
        * testsuite/libffi.call/cls_4byte.c: Likewise.
2778
        * testsuite/libffi.call/cls_64byte.c: Likewise.
2779
        * testsuite/libffi.call/cls_6byte.c: Likewise.
2780
        * testsuite/libffi.call/cls_7byte.c: Likewise.
2781
        * testsuite/libffi.call/cls_8byte.c: Likewise.
2782
        * testsuite/libffi.call/cls_9byte1.c: Likewise.
2783
        * testsuite/libffi.call/cls_9byte2.c: Likewise.
2784
        * testsuite/libffi.call/cls_align_double.c: Likewise.
2785
        * testsuite/libffi.call/cls_align_float.c: Likewise.
2786
        * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2787
        * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2788
        * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2789
        * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2790
        * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2791
        * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2792
        * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2793
        * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2794
        * testsuite/libffi.call/cls_double.c: Likewise.
2795
        * testsuite/libffi.call/cls_float.c: Likewise.
2796
        * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2797
        * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2798
        * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2799
        * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2800
        * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2801
        * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2802
        * testsuite/libffi.call/cls_schar.c: Likewise.
2803
        * testsuite/libffi.call/cls_sint.c: Likewise.
2804
        * testsuite/libffi.call/cls_sshort.c: Likewise.
2805
        * testsuite/libffi.call/cls_uchar.c: Likewise.
2806
        * testsuite/libffi.call/cls_uint.c: Likewise.
2807
        * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2808
        * testsuite/libffi.call/cls_ushort.c: Likewise.
2809
        * testsuite/libffi.call/nested_struct.c: Likewise.
2810
        * testsuite/libffi.call/nested_struct1.c: Likewise.
2811
        * testsuite/libffi.call/nested_struct2.c: Likewise.
2812
        * testsuite/libffi.call/nested_struct3.c: Likewise.
2813
        * testsuite/libffi.call/problem1.c: Likewise.
2814
        * testsuite/libffi.special/unwindtest.cc: Likewise.
2815
        * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2816
        to zero.
2817
        * testsuite/libffi.call/cls_16byte.c: Likewise.
2818
        * testsuite/libffi.call/cls_5byte.c: Likewise.
2819
 
2820
2004-08-23  David Daney 
2821
 
2822
        PR libgcj/13141
2823
        * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2824
        * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2825
        (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2826
        parameters and return types.
2827
        (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2828
        (ffi_prep_closure): Ditto.
2829
        (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2830
        alignment calculations.
2831
        * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2832
        instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2833
 
2834
2004-08-14  Casey Marshall 
2835
 
2836
        * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2837
        contain `FFI_TYPE_UINT64' as return type for any 64-bit
2838
        integer (O32 ABI only).
2839
        (ffi_prep_closure): new function.
2840
        (ffi_closure_mips_inner_O32): new function.
2841
        * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
2842
        `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2843
        * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2844
        64 bit integers correctly.
2845
        (ffi_closure_O32): new function.
2846
        Added DWARF-2 unwind info for both functions.
2847
 
2848
2004-08-10  Andrew Haley  
2849
 
2850
        * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2851
 
2852
2004-08-01  Robert Millan  
2853
 
2854
        * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2855
        * configure: Regenerate.
2856
 
2857
2004-07-30  Maciej W. Rozycki  
2858
 
2859
        * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for 
2860
        and mmap() explicitly instead of relying on preset autoconf cache
2861
        variables.
2862
        * aclocal.m4: Regenerate.
2863
        * configure: Regenerate.
2864
 
2865
2004-07-11  Ulrich Weigand  
2866
 
2867
        * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2868
        (ffi_check_float_struct): Remove unused prototype.
2869
 
2870
2004-06-30  Geoffrey Keating  
2871
 
2872
        * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2873
        character on Darwin, use '\n\t' instead.
2874
 
2875
2004-06-26  Matthias Klose  
2876
 
2877
        * libtool-version: Fix typo in revision/age.
2878
 
2879
2004-06-17  Matthias Klose  
2880
 
2881
        * libtool-version: New.
2882
        * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2883
        * Makefile.in: Regenerate.
2884
 
2885
2004-06-15  Paolo Bonzini  
2886
 
2887
        * Makefile.am: Remove useless multilib rules.
2888
        * Makefile.in: Regenerate.
2889
        * aclocal.m4: Regenerate with automake 1.8.5.
2890
        * configure.ac: Remove useless multilib configury.
2891
        * configure: Regenerate.
2892
 
2893
2004-06-15  Paolo Bonzini  
2894
 
2895
        * .cvsignore: New file.
2896
 
2897
2004-06-10  Jakub Jelinek  
2898
 
2899
        * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2900
        fp_done.
2901
        (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2902
        changed from 8.
2903
 
2904
2004-06-06  Sean McNeil  
2905
 
2906
        * configure.ac: Add x86_64-*-freebsd* support.
2907
        * configure: Regenerate.
2908
 
2909
2004-04-26  Joe Buck 
2910
 
2911
        Bug 15093
2912
        * configure.ac: Test for existence of mmap and sys/mman.h before
2913
        checking blacklist.  Fix suggested by Jim Wilson.
2914
        * configure: Regenerate.
2915
 
2916
2004-04-26  Matt Austern  
2917
 
2918
        * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
2919
        FDE location.
2920
        * src/powerpc/darwin_closure.S: Likewise.
2921
 
2922
2004-04-24  Andreas Tobler  
2923
 
2924
        * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
2925
        error. Reported by Thomas Heller .
2926
        * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
2927
        * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
2928
 
2929
2004-03-20  Matthias Klose  
2930
 
2931
        * src/pa/linux.S: Fix typo.
2932
 
2933
2004-03-19  Matthias Klose  
2934
 
2935
        * Makefile.am: Update.
2936
        * Makefile.in: Regenerate.
2937
        * src/pa/ffi.h.in: Remove.
2938
        * src/pa/ffitarget.h: New file.
2939
 
2940
2004-02-10  Randolph Chung  
2941
 
2942
        * Makefile.am: Add PA support.
2943
        * Makefile.in: Regenerate.
2944
        * include/Makefile.in: Regenerate.
2945
        * configure.ac: Add PA target.
2946
        * configure: Regenerate.
2947
        * src/pa/ffi.c: New file.
2948
        * src/pa/ffi.h.in: Add PA support.
2949
        * src/pa/linux.S: New file.
2950
        * prep_cif.c: Add PA support.
2951
 
2952
2004-03-16  Hosaka Yuji  
2953
 
2954
        * src/types.c: Fix alignment size of X86_WIN32 case int64 and
2955
        double.
2956
        * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
2957
        with ecif->cif->flags.
2958
        (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
2959
        with cif->flags.
2960
        (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
2961
        (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
2962
        * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
2963
        sc_retstruct2b): Add for 1 or 2-bytes struct case.
2964
 
2965
2004-03-15 Kelley Cook 
2966
 
2967
        * configure.in: Rename file to ...
2968
        * configure.ac: ... this.
2969
        * fficonfig.h.in: Regenerate.
2970
        * Makefile.in: Regenerate.
2971
        * include/Makefile.in: Regenerate.
2972
        * testsuite/Makefile.in: Regenerate.
2973
 
2974
2004-03-12  Matt Austern  
2975
 
2976
        * src/powerpc/darwin.S: Fix EH information so it corresponds to
2977
        changes in EH format resulting from addition of linkonce support.
2978
        * src/powerpc/darwin_closure.S: Likewise.
2979
 
2980
2004-03-11  Andreas Tobler  
2981
            Paolo Bonzini  
2982
 
2983
        * Makefile.am (AUTOMAKE_OPTIONS): Set them.
2984
        Remove VPATH. Remove rules for object files. Remove multilib support.
2985
        (AM_CCASFLAGS): Add.
2986
        * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
2987
        (AC_PREREQ): Bump version to 2.59.
2988
        (AC_INIT): Fill with version info and bug address.
2989
        (ORIGINAL_LD_FOR_MULTILIBS): Remove.
2990
        (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
2991
        De-precious CC so that the right flags are passed down to multilibs.
2992
        (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
2993
        (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
2994
        (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
2995
        * configure: Rebuilt.
2996
        * aclocal.m4: Likewise.
2997
        * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
2998
        * fficonfig.h.in: Likewise.
2999
 
3000
2004-03-11  Andreas Schwab  
3001
 
3002
        * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3003
        arguments from fp registers only for the first 8 parameter slots.
3004
        Don't convert a float parameter when passed in memory.
3005
 
3006
2004-03-09  Hans-Peter Nilsson  
3007
 
3008
        * configure: Regenerate for config/accross.m4 correction.
3009
 
3010
2004-02-25  Matt Kraai  
3011
 
3012
        * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3013
        ecif->cif->bytes to bytes.
3014
        (ffi_prep_cif_machdep): Add braces around nested if statement.
3015
 
3016
2004-02-09  Alan Modra  
3017
 
3018
        * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3019
 
3020
        * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3021
        (ffi_closure_helper_LINUX64): Fix typo.
3022
        * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3023
        for powerpc64-*-*.
3024
        * testsuite/libffi.call/float.c: Likewise.
3025
        * testsuite/libffi.call/float2.c: Likewise.
3026
 
3027
2004-02-08  Alan Modra  
3028
 
3029
        * src/powerpc/ffi.c (ffi_prep_cif_machdep ): Correct
3030
        long double function return and long double arg handling.
3031
        (ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
3032
        Use "end_pfr" instead of "nf".  Correct long double handling.
3033
        Localise "temp".
3034
        * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3035
        return value.
3036
        * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3037
        space for long double return value.  Adjust stack frame and offsets.
3038
        Load f2 long double return.
3039
 
3040
2004-02-07  Alan Modra  
3041
 
3042
        * src/types.c: Use 16 byte long double for POWERPC64.
3043
 
3044
2004-01-25  Eric Botcazou  
3045
 
3046
        * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3047
        when the structure return address is passed in %o0.
3048
        (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3049
        (ffi_v9_layout_struct): Align the field following a nested structure
3050
        on a word boundary.  Use memmove instead of memcpy.
3051
        (ffi_call): Update call to ffi_V9_return_struct.
3052
        (ffi_prep_closure): Define 'ctx' only for V8.
3053
        (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3054
        and ffi_closure_sparc_inner_v9.
3055
        (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3056
        Always skip the structure return address.  For structures and long
3057
        doubles, copy the argument directly.
3058
        (ffi_closure_sparc_inner_v9): Skip the structure return address only
3059
        if required.  Shift the maximum floating-point slot accordingly.  For
3060
        big structures, copy the argument directly; otherwise, left-justify the
3061
        argument and call ffi_v9_layout_struct to lay out the structure on
3062
        the stack.
3063
        * src/sparc/v8.S: Undef STACKFRAME before defining it.
3064
        (ffi_closure_v8): Pass the structure return address.  Update call to
3065
        ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
3066
        Skip the 'unimp' insn when returning long doubles and structures.
3067
        * src/sparc/v9.S: Undef STACKFRAME before defining it.
3068
        (ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
3069
        FFI_TYPE_INT handling.  Load structures both in integers and
3070
        floating-point registers on return.
3071
        * README: Update status of the SPARC port.
3072
 
3073
2004-01-24  Andreas Tobler  
3074
 
3075
        * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3076
        as of type ffi_arg.
3077
        * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3078
 
3079
2004-01-22  Ulrich Weigand  
3080
 
3081
        * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3082
        value as of type ffi_arg, not unsigned int.
3083
 
3084
2004-01-21  Michael Ritzert  
3085
 
3086
        * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3087
        of the LHS.
3088
 
3089
2004-01-12  Andreas Tobler  
3090
 
3091
        * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3092
        Solaris.
3093
 
3094
2004-01-08  Rainer Orth  
3095
 
3096
        * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3097
        to void *.
3098
 
3099
2003-12-10  Richard Henderson  
3100
 
3101
        * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3102
        size_t instead of int.
3103
 
3104
2003-12-04  Hosaka Yuji  
3105
 
3106
        * testsuite/libffi.call/many_win32.c: Include .
3107
        * testsuite/libffi.call/many_win32.c (main): Replace variable
3108
        int i with unsigned long ul.
3109
 
3110
        * testsuite/libffi.call/cls_align_uint64.c: New test case.
3111
        * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3112
        * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3113
        * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3114
        * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3115
        * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3116
        * testsuite/libffi.call/cls_align_float.c: Likewise.
3117
        * testsuite/libffi.call/cls_align_double.c: Likewise.
3118
        * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3119
        * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3120
 
3121
2003-12-02  Hosaka Yuji  
3122
 
3123
        PR other/13221
3124
        * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3125
        Align arguments to 32 bits.
3126
 
3127
2003-12-01  Andreas Tobler  
3128
 
3129
        PR other/13221
3130
        * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3131
        * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3132
        * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3133
        * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3134
        * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3135
        * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3136
 
3137
        * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3138
 
3139
2003-11-26  Kaveh R. Ghazi  
3140
 
3141
        * testsuite/libffi.call/ffitest.h: Include .
3142
        * testsuite/libffi.special/ffitestcxx.h: Likewise.
3143
 
3144
2003-11-22  Andreas Tobler  
3145
 
3146
        * Makefile.in: Rebuilt.
3147
        * configure: Likewise.
3148
        * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
3149
        the right type.
3150
 
3151
2003-11-21  Andreas Jaeger  
3152
            Andreas Tobler  
3153
 
3154
        * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
3155
        * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
3156
        * Makefile.in: Rebuilt.
3157
        * aclocal.m4: Likewise.
3158
        * configure: Likewise.
3159
        * fficonfig.h.in: Likewise.
3160
        * testsuite/lib/libffi-dg.exp: Add include dir.
3161
        * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
3162
        * testsuite/libffi.special/ffitestcxx.h: Likewise.
3163
        * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
3164
        for ffi_closure if available.
3165
        * testsuite/libffi.call/closure_fn1.c: Likewise.
3166
        * testsuite/libffi.call/closure_fn2.c: Likewise.
3167
        * testsuite/libffi.call/closure_fn3.c: Likewise.
3168
        * testsuite/libffi.call/closure_fn4.c: Likewise.
3169
        * testsuite/libffi.call/closure_fn5.c: Likewise.
3170
        * testsuite/libffi.call/cls_12byte.c: Likewise.
3171
        * testsuite/libffi.call/cls_16byte.c: Likewise.
3172
        * testsuite/libffi.call/cls_18byte.c: Likewise.
3173
        * testsuite/libffi.call/cls_19byte.c: Likewise.
3174
        * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3175
        * testsuite/libffi.call/cls_20byte.c: Likewise.
3176
        * testsuite/libffi.call/cls_20byte1.c: Likewise.
3177
        * testsuite/libffi.call/cls_24byte.c: Likewise.
3178
        * testsuite/libffi.call/cls_2byte.c: Likewise.
3179
        * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3180
        * testsuite/libffi.call/cls_3byte1.c: Likewise.
3181
        * testsuite/libffi.call/cls_3byte2.c: Likewise.
3182
        * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3183
        * testsuite/libffi.call/cls_4byte.c: Likewise.
3184
        * testsuite/libffi.call/cls_5byte.c: Likewise.
3185
        * testsuite/libffi.call/cls_64byte.c: Likewise.
3186
        * testsuite/libffi.call/cls_6byte.c: Likewise.
3187
        * testsuite/libffi.call/cls_7byte.c: Likewise.
3188
        * testsuite/libffi.call/cls_8byte.c: Likewise.
3189
        * testsuite/libffi.call/cls_9byte1.c: Likewise.
3190
        * testsuite/libffi.call/cls_9byte2.c: Likewise.
3191
        * testsuite/libffi.call/cls_double.c: Likewise.
3192
        * testsuite/libffi.call/cls_float.c: Likewise.
3193
        * testsuite/libffi.call/cls_schar.c: Likewise.
3194
        * testsuite/libffi.call/cls_sint.c: Likewise.
3195
        * testsuite/libffi.call/cls_sshort.c: Likewise.
3196
        * testsuite/libffi.call/cls_uchar.c: Likewise.
3197
        * testsuite/libffi.call/cls_uint.c: Likewise.
3198
        * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3199
        * testsuite/libffi.call/cls_ushort.c: Likewise.
3200
        * testsuite/libffi.call/nested_struct.c: Likewise.
3201
        * testsuite/libffi.call/nested_struct1.c: Likewise.
3202
        * testsuite/libffi.call/nested_struct2.c: Likewise.
3203
        * testsuite/libffi.call/nested_struct3.c: Likewise.
3204
        * testsuite/libffi.call/problem1.c: Likewise.
3205
        * testsuite/libffi.special/unwindtest.cc: Likewise.
3206
 
3207
2003-11-20  Andreas Tobler  
3208
 
3209
        * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
3210
 
3211
2003-11-19  Andreas Tobler  
3212
 
3213
        * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
3214
        Add -lgcc_s to additional flags.
3215
 
3216
2003-11-12  Andreas Tobler  
3217
 
3218
        * configure.in, include/Makefile.am: PR libgcj/11147, install
3219
        the ffitarget.h header file in a gcc versioned and target
3220
        dependent place.
3221
        * configure: Regenerated.
3222
        * Makefile.in, include/Makefile.in: Likewise.
3223
        * testsuite/Makefile.in: Likewise.
3224
 
3225
2003-11-09  Andreas Tobler  
3226
 
3227
        * testsuite/libffi.call/closure_fn0.c: Print result and check
3228
        with dg-output to make debugging easier.
3229
        * testsuite/libffi.call/closure_fn1.c: Likewise.
3230
        * testsuite/libffi.call/closure_fn2.c: Likewise.
3231
        * testsuite/libffi.call/closure_fn3.c: Likewise.
3232
        * testsuite/libffi.call/closure_fn4.c: Likewise.
3233
        * testsuite/libffi.call/closure_fn5.c: Likewise.
3234
        * testsuite/libffi.call/cls_12byte.c: Likewise.
3235
        * testsuite/libffi.call/cls_16byte.c: Likewise.
3236
        * testsuite/libffi.call/cls_18byte.c: Likewise.
3237
        * testsuite/libffi.call/cls_19byte.c: Likewise.
3238
        * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3239
        * testsuite/libffi.call/cls_20byte.c: Likewise.
3240
        * testsuite/libffi.call/cls_20byte1.c: Likewise.
3241
        * testsuite/libffi.call/cls_24byte.c: Likewise.
3242
        * testsuite/libffi.call/cls_2byte.c: Likewise.
3243
        * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3244
        * testsuite/libffi.call/cls_3byte1.c: Likewise.
3245
        * testsuite/libffi.call/cls_3byte2.c: Likewise.
3246
        * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3247
        * testsuite/libffi.call/cls_4byte.c: Likewise.
3248
        * testsuite/libffi.call/cls_5byte.c: Likewise.
3249
        * testsuite/libffi.call/cls_64byte.c: Likewise.
3250
        * testsuite/libffi.call/cls_6byte.c: Likewise.
3251
        * testsuite/libffi.call/cls_7byte.c: Likewise.
3252
        * testsuite/libffi.call/cls_8byte.c: Likewise.
3253
        * testsuite/libffi.call/cls_9byte1.c: Likewise.
3254
        * testsuite/libffi.call/cls_9byte2.c: Likewise.
3255
        * testsuite/libffi.call/cls_double.c: Likewise.
3256
        * testsuite/libffi.call/cls_float.c: Likewise.
3257
        * testsuite/libffi.call/cls_schar.c: Likewise.
3258
        * testsuite/libffi.call/cls_sint.c: Likewise.
3259
        * testsuite/libffi.call/cls_sshort.c: Likewise.
3260
        * testsuite/libffi.call/cls_uchar.c: Likewise.
3261
        * testsuite/libffi.call/cls_uint.c: Likewise.
3262
        * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3263
        * testsuite/libffi.call/cls_ushort.c: Likewise.
3264
        * testsuite/libffi.call/problem1.c: Likewise.
3265
 
3266
        * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
3267
        static.
3268
 
3269
2003-11-08  Andreas Tobler  
3270
 
3271
        * testsuite/libffi.call/cls_9byte2.c: New test case.
3272
        * testsuite/libffi.call/cls_9byte1.c: Likewise.
3273
        * testsuite/libffi.call/cls_64byte.c: Likewise.
3274
        * testsuite/libffi.call/cls_20byte1.c: Likewise.
3275
        * testsuite/libffi.call/cls_19byte.c: Likewise.
3276
        * testsuite/libffi.call/cls_18byte.c: Likewise.
3277
        * testsuite/libffi.call/closure_fn4.c: Likewise.
3278
        * testsuite/libffi.call/closure_fn5.c: Likewise.
3279
        * testsuite/libffi.call/cls_schar.c: Likewise.
3280
        * testsuite/libffi.call/cls_sint.c: Likewise.
3281
        * testsuite/libffi.call/cls_sshort.c: Likewise.
3282
        * testsuite/libffi.call/nested_struct2.c: Likewise.
3283
        * testsuite/libffi.call/nested_struct3.c: Likewise.
3284
 
3285
2003-11-08  Andreas Tobler  
3286
 
3287
        * testsuite/libffi.call/cls_double.c: Do a check on the result.
3288
        * testsuite/libffi.call/cls_uchar.c: Likewise.
3289
        * testsuite/libffi.call/cls_uint.c: Likewise.
3290
        * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3291
        * testsuite/libffi.call/cls_ushort.c: Likewise.
3292
        * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
3293
 
3294
2003-11-06  Andreas Tobler  
3295
 
3296
        * src/prep_cif.c (ffi_prep_cif): Move the validity check after
3297
        the initialization.
3298
 
3299
2003-10-23  Andreas Tobler  
3300
 
3301
        * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
3302
        FFI_ASSERT(FALSE) with FFI_ASSERT(0).
3303
 
3304
2003-10-22  David Daney  
3305
 
3306
        * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
3307
        __attribute__((__mode__(__SI__))) and friends.
3308
 
3309
2003-10-22  Andreas Schwab  
3310
 
3311
        * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
3312
 
3313
2003-10-21  Andreas Tobler  
3314
 
3315
        * configure.in: AC_LINK_FILES(ffitarget.h).
3316
        * configure: Regenerate.
3317
        * Makefile.in: Likewise.
3318
        * include/Makefile.in: Likewise.
3319
        * testsuite/Makefile.in: Likewise.
3320
        * fficonfig.h.in: Likewise.
3321
 
3322
2003-10-21  Paolo Bonzini  
3323
            Richard Henderson  
3324
 
3325
        Avoid that ffi.h includes fficonfig.h.
3326
 
3327
        * Makefile.am (EXTRA_DIST): Include ffitarget.h files
3328
        (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3329
        (TARGET_SRC_MIPS_SGI): Removed.
3330
        (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3331
        (MIPS_SGI): Removed.
3332
        (CLEANFILES): Removed.
3333
        (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
3334
        targets.
3335
        * acconfig.h: Removed.
3336
        * configure.in: Compute sizeofs only for double and long double.
3337
        Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
3338
        into AC_DEFINE instead of using acconfig.h.  Create
3339
        include/ffitarget.h instead of include/fficonfig.h.  Rename
3340
        MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
3341
        AC_DEFINE EH_FRAME_FLAGS.
3342
        * include/Makefile.am (DISTCLEANFILES): New automake macro.
3343
        (hack_DATA): Add ffitarget.h.
3344
        * include/ffi.h.in: Remove all system specific definitions.
3345
        Declare raw API even if it is not installed, why bother?
3346
        Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
3347
        not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
3348
        ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
3349
        (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
3350
        * include/ffi_common.h (bool): Do not define.
3351
        (ffi_assert): Accept failed assertion.
3352
        (ffi_type_test): Return void and accept file/line.
3353
        (FFI_ASSERT): Pass stringized failed assertion.
3354
        (FFI_ASSERT_AT): New macro.
3355
        (FFI_ASSERT_VALID_TYPE): New macro.
3356
        (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
3357
        UINT64, SINT64): Define here with gcc's __attribute__ macro
3358
        instead of in ffi.h
3359
        (FLOAT32, ALIGN): Define here instead of in ffi.h
3360
        * include/ffi-mips.h: Removed.  Its content moved to
3361
        src/mips/ffitarget.h after separating assembly and C sections.
3362
        * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
3363
        src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
3364
        src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
3365
        src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
3366
        SIZEOF_ARG -> FFI_SIZEOF_ARG.
3367
        * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
3368
        * src/debug.c (ffi_assert): Accept stringized failed assertion.
3369
        (ffi_type_test): Rewritten.
3370
        * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
3371
        FFI_ASSERT_VALID_TYPE.
3372
        * src/alpha/ffitarget.h, src/arm/ffitarget.h,
3373
        src/ia64/ffitarget.h, src/m68k/ffitarget.h,
3374
        src/mips/ffitarget.h, src/powerpc/ffitarget.h,
3375
        src/s390/ffitarget.h, src/sh/ffitarget.h,
3376
        src/sh64/ffitarget.h, src/sparc/ffitarget.h,
3377
        src/x86/ffitarget.h: New files.
3378
        * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
3379
        src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
3380
        src/powerpc/aix.S, src/powerpc/darwin.S,
3381
        src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
3382
        src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
3383
        src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
3384
        src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
3385
        src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
3386
        include fficonfig.h
3387
 
3388
2003-10-20  Rainer Orth  
3389
 
3390
        * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
3391
        _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
3392
 
3393
2003-10-19  Andreas Tobler  
3394
 
3395
        * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
3396
        Used when FFI_DEBUG = 1.
3397
 
3398
2003-10-14  Alan Modra  
3399
 
3400
        * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
3401
        and align.
3402
 
3403
2003-10-06  Rainer Orth  
3404
 
3405
        * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
3406
        FFI_MIPS_O32 for O32 ABI.
3407
 
3408
2003-10-01  Andreas Tobler  
3409
 
3410
        * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
3411
        SPARC64. Cleanup whitespaces.
3412
 
3413
2003-09-19  Andreas Tobler  
3414
 
3415
        * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
3416
        strongarm, xscale. Cleanup whitespaces.
3417
        * testsuite/libffi.call/closure_fn1.c: Likewise.
3418
        * testsuite/libffi.call/closure_fn2.c: Likewise.
3419
        * testsuite/libffi.call/closure_fn3.c: Likewise.
3420
        * testsuite/libffi.call/cls_12byte.c: Likewise.
3421
        * testsuite/libffi.call/cls_16byte.c: Likewise.
3422
        * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3423
        * testsuite/libffi.call/cls_20byte.c: Likewise.
3424
        * testsuite/libffi.call/cls_24byte.c: Likewise.
3425
        * testsuite/libffi.call/cls_2byte.c: Likewise.
3426
        * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3427
        * testsuite/libffi.call/cls_3byte1.c: Likewise.
3428
        * testsuite/libffi.call/cls_3byte2.c: Likewise.
3429
        * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3430
        * testsuite/libffi.call/cls_4byte.c: Likewise.
3431
        * testsuite/libffi.call/cls_5byte.c: Likewise.
3432
        * testsuite/libffi.call/cls_6byte.c: Likewise.
3433
        * testsuite/libffi.call/cls_7byte.c: Likewise.
3434
        * testsuite/libffi.call/cls_8byte.c: Likewise.
3435
        * testsuite/libffi.call/cls_double.c: Likewise.
3436
        * testsuite/libffi.call/cls_float.c: Likewise.
3437
        * testsuite/libffi.call/cls_uchar.c: Likewise.
3438
        * testsuite/libffi.call/cls_uint.c: Likewise.
3439
        * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3440
        * testsuite/libffi.call/cls_ushort.c: Likewise.
3441
        * testsuite/libffi.call/nested_struct.c: Likewise.
3442
        * testsuite/libffi.call/nested_struct1.c: Likewise.
3443
        * testsuite/libffi.call/problem1.c: Likewise.
3444
        * testsuite/libffi.special/unwindtest.cc: Likewise.
3445
        * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
3446
 
3447
2003-09-18  David Edelsohn  
3448
 
3449
        * src/powerpc/aix.S: Cleanup whitespaces.
3450
        * src/powerpc/aix_closure.S: Likewise.
3451
 
3452
2003-09-18  Andreas Tobler  
3453
 
3454
        * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
3455
        * src/powerpc/darwin_closure.S: Likewise.
3456
        * src/powerpc/ffi_darwin.c: Likewise.
3457
 
3458
2003-09-18  Andreas Tobler  
3459
            David Edelsohn  
3460
 
3461
        * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
3462
        * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
3463
        parameter stack.
3464
        * src/powerpc/darwin_closure.S: Likewise.
3465
        * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
3466
        according to the Darwin/AIX ABI.
3467
        (ffi_prep_cif_machdep): Likewise.
3468
        (ffi_closure_helper_DARWIN): Likewise.
3469
        Remove the outgoing parameter stack logic. Simplify the evaluation
3470
        of the different CASE types.
3471
        (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
3472
        statement in the trampoline code.
3473
 
3474
2003-09-18  Kaz Kojima  
3475
 
3476
        * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
3477
        for the register size.
3478
        (ffi_closure_helper_SYSV): Handle the structure return value
3479
        address correctly.
3480
        (ffi_closure_helper_SYSV): Return the appropriate type when
3481
        the registers are used for the structure return value.
3482
        * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
3483
        the 64-bit return value.  Update copyright years.
3484
 
3485
2003-09-17  Rainer Orth  
3486
 
3487
        * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
3488
        srcdir for ffi_mips.h.
3489
 
3490
2003-09-12  Alan Modra  
3491
 
3492
        * src/prep_cif.c (initialize_aggregate): Include tail padding in
3493
        structure size.
3494
        * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
3495
        placement of float result.
3496
        * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
3497
        cast of "resp" for big-endian 64 bit machines.
3498
 
3499
2003-09-11  Alan Modra  
3500
 
3501
        * src/types.c (double, longdouble): Merge identical SH and ARM
3502
        typedefs, and add POWERPC64.
3503
        * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
3504
        struct split over gpr and rest.
3505
        (ffi_prep_cif_machdep): Correct intarg_count for structures.
3506
        * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
3507
 
3508
2003-09-09  Andreas Tobler  
3509
 
3510
        * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
3511
        passing correctly.
3512
 
3513
2003-09-09  Alan Modra  
3514
 
3515
        * configure: Regenerate.
3516
 
3517
2003-09-04  Andreas Tobler  
3518
 
3519
        * Makefile.am: Remove build rules for ffitest.
3520
        * Makefile.in: Rebuilt.
3521
 
3522
2003-09-04  Andreas Tobler  
3523
 
3524
        * src/java_raw_api.c: Include  to fix compiler warning
3525
        about implicit declaration of abort().
3526
 
3527
2003-09-04  Andreas Tobler  
3528
 
3529
        * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
3530
        * Makefile.in: Rebuilt.
3531
        * configure.in: Add dejagnu test framework.
3532
        * configure: Rebuilt.
3533
 
3534
        * testsuite/Makefile.am: New file.
3535
        * testsuite/Makefile.in: Built
3536
        * testsuite/lib/libffi-dg.exp: New file.
3537
        * testsuite/config/default.exp: Likewise.
3538
        * testsuite/libffi.call/call.exp: Likewise.
3539
        * testsuite/libffi.call/ffitest.h: Likewise.
3540
        * testsuite/libffi.call/closure_fn0.c: Likewise.
3541
        * testsuite/libffi.call/closure_fn1.c: Likewise.
3542
        * testsuite/libffi.call/closure_fn2.c: Likewise.
3543
        * testsuite/libffi.call/closure_fn3.c: Likewise.
3544
        * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3545
        * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3546
        * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3547
        * testsuite/libffi.call/cls_2byte.c: Likewise.
3548
        * testsuite/libffi.call/cls_3byte1.c: Likewise.
3549
        * testsuite/libffi.call/cls_3byte2.c: Likewise.
3550
        * testsuite/libffi.call/cls_4byte.c: Likewise.
3551
        * testsuite/libffi.call/cls_5byte.c: Likewise.
3552
        * testsuite/libffi.call/cls_6byte.c: Likewise.
3553
        * testsuite/libffi.call/cls_7byte.c: Likewise.
3554
        * testsuite/libffi.call/cls_8byte.c: Likewise.
3555
        * testsuite/libffi.call/cls_12byte.c: Likewise.
3556
        * testsuite/libffi.call/cls_16byte.c: Likewise.
3557
        * testsuite/libffi.call/cls_20byte.c: Likewise.
3558
        * testsuite/libffi.call/cls_24byte.c: Likewise.
3559
        * testsuite/libffi.call/cls_double.c: Likewise.
3560
        * testsuite/libffi.call/cls_float.c: Likewise.
3561
        * testsuite/libffi.call/cls_uchar.c: Likewise.
3562
        * testsuite/libffi.call/cls_uint.c: Likewise.
3563
        * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3564
        * testsuite/libffi.call/cls_ushort.c: Likewise.
3565
        * testsuite/libffi.call/float.c: Likewise.
3566
        * testsuite/libffi.call/float1.c: Likewise.
3567
        * testsuite/libffi.call/float2.c: Likewise.
3568
        * testsuite/libffi.call/many.c: Likewise.
3569
        * testsuite/libffi.call/many_win32.c: Likewise.
3570
        * testsuite/libffi.call/nested_struct.c: Likewise.
3571
        * testsuite/libffi.call/nested_struct1.c: Likewise.
3572
        * testsuite/libffi.call/pyobjc-tc.c: Likewise.
3573
        * testsuite/libffi.call/problem1.c: Likewise.
3574
        * testsuite/libffi.call/promotion.c: Likewise.
3575
        * testsuite/libffi.call/return_ll.c: Likewise.
3576
        * testsuite/libffi.call/return_sc.c: Likewise.
3577
        * testsuite/libffi.call/return_uc.c: Likewise.
3578
        * testsuite/libffi.call/strlen.c: Likewise.
3579
        * testsuite/libffi.call/strlen_win32.c: Likewise.
3580
        * testsuite/libffi.call/struct1.c: Likewise.
3581
        * testsuite/libffi.call/struct2.c: Likewise.
3582
        * testsuite/libffi.call/struct3.c: Likewise.
3583
        * testsuite/libffi.call/struct4.c: Likewise.
3584
        * testsuite/libffi.call/struct5.c: Likewise.
3585
        * testsuite/libffi.call/struct6.c: Likewise.
3586
        * testsuite/libffi.call/struct7.c: Likewise.
3587
        * testsuite/libffi.call/struct8.c: Likewise.
3588
        * testsuite/libffi.call/struct9.c: Likewise.
3589
        * testsuite/libffi.special/special.exp: New file.
3590
        * testsuite/libffi.special/ffitestcxx.h: Likewise.
3591
        * testsuite/libffi.special/unwindtest.cc: Likewise.
3592
 
3593
 
3594
2003-08-13  Kaz Kojima  
3595
 
3596
        * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
3597
        copyright years.
3598
 
3599
2003-08-02  Alan Modra  
3600
 
3601
        * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
3602
        structure passing.
3603
        (ffi_closure_helper_LINUX64): Likewise.
3604
        * src/powerpc/linux64.S: Remove code writing to parm save area.
3605
        * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
3606
        address in lr from ffi_closure_helper_LINUX64 call to calculate
3607
        table address.  Optimize function tail.
3608
 
3609
2003-07-28  Andreas Tobler  
3610
 
3611
        * src/sparc/ffi.c: Handle all floating point registers.
3612
        * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
3613
 
3614
2003-07-11  Gerald Pfeifer  
3615
 
3616
        * README: Note that libffi is not part of GCC.  Update the project
3617
        URL and status.
3618
 
3619
2003-06-19  Franz Sirl  
3620
 
3621
        * src/powerpc/ppc_closure.S: Include ffi.h.
3622
 
3623
2003-06-13  Rainer Orth  
3624
 
3625
        * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
3626
        Use C style comments.
3627
 
3628
2003-06-13  Kaz Kojima  
3629
 
3630
        * Makefile.am: Add SHmedia support.  Fix a typo of SH support.
3631
        * Makefile.in: Regenerate.
3632
        * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
3633
        * configure: Regenerate.
3634
        * include/ffi.h.in: Add SHmedia support.
3635
        * src/sh64/ffi.c: New file.
3636
        * src/sh64/sysv.S: New file.
3637
 
3638
2003-05-16  Jakub Jelinek  
3639
 
3640
        * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
3641
        should be read-only.
3642
        * configure: Rebuilt.
3643
        * fficonfig.h.in: Rebuilt.
3644
        * include/ffi.h.in (EH_FRAME_FLAGS): Define.
3645
        * src/alpha/osf.S: Use EH_FRAME_FLAGS.
3646
        * src/powerpc/linux64.S: Likewise.
3647
        * src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
3648
        * src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
3649
        if -fpic/-fPIC/-mrelocatable.
3650
        * src/powerpc/powerpc_closure.S: Likewise.
3651
        * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
3652
        #write in .eh_frame flags.
3653
        * src/sparc/v9.S: Likewise.
3654
        * src/x86/unix64.S: Use EH_FRAME_FLAGS.
3655
        * src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
3656
        * src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
3657
 
3658
2003-05-07  Jeff Sturm  
3659
 
3660
        Fixes PR bootstrap/10656
3661
        * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
3662
        support for .register pseudo-op.
3663
        * src/sparc/v8.S: Use it.
3664
        * fficonfig.h.in: Rebuilt.
3665
        * configure: Rebuilt.
3666
 
3667
2003-04-18  Jakub Jelinek  
3668
 
3669
        * include/ffi.h.in (POWERPC64): Define if 64-bit.
3670
        (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
3671
        Make it the default on POWERPC64.
3672
        (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
3673
        * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
3674
        * configure: Rebuilt.
3675
        * src/powerpc/ffi.c (hidden): Define.
3676
        (ffi_prep_args_SYSV): Renamed from
3677
        ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
3678
        (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
3679
        ASM_NEEDS_REGISTERS64): New.
3680
        (ffi_prep_args64): New function.
3681
        (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
3682
        (ffi_call): Likewise.
3683
        (ffi_prep_closure): Likewise.
3684
        (flush_icache): Surround by #ifndef POWERPC64.
3685
        (ffi_dblfl): New union type.
3686
        (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
3687
        (ffi_closure_helper_LINUX64): New function.
3688
        * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
3689
        __powerpc64__.
3690
        * src/powerpc/sysv.S: Likewise.
3691
        (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
3692
        * src/powerpc/linux64.S: New file.
3693
        * src/powerpc/linux64_closure.S: New file.
3694
        * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
3695
        src/powerpc/linux64_closure.S.
3696
        (TARGET_SRC_POWERPC): Likewise.
3697
 
3698
        * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
3699
        closure_test_fn3): Fix result printing on big-endian 64-bit
3700
        machines.
3701
        (main): Print tst2_arg instead of uninitialized tst2_result.
3702
 
3703
        * src/ffitest.c (main): Hide what closure pointer really points to
3704
        from the compiler.
3705
 
3706
2003-04-16  Richard Earnshaw  
3707
 
3708
        * configure.in (arm-*-netbsdelf*): Add configuration.
3709
        (configure): Regenerated.
3710
 
3711
2003-04-04  Loren J. Rittle  
3712
 
3713
        * include/Makefile.in: Regenerate.
3714
 
3715
2003-03-21  Zdenek Dvorak  
3716
 
3717
        * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3718
        bit mode.
3719
        * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3720
        Receive closure pointer through parameter, read args using
3721
        __builtin_dwarf_cfa.
3722
        (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3723
 
3724
2003-03-12  Andreas Schwab  
3725
 
3726
        * configure.in: Avoid trailing /. in toolexeclibdir.
3727
        * configure: Rebuilt.
3728
 
3729
2003-03-03  Andreas Tobler 
3730
 
3731
        * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
3732
 
3733
2003-02-06  Andreas Tobler 
3734
 
3735
        * libffi/src/powerpc/darwin_closure.S:
3736
        Fix alignement bug, allocate 8 bytes for the result.
3737
        * libffi/src/powerpc/aix_closure.S:
3738
        Likewise.
3739
        * libffi/src/powerpc/ffi_darwin.c:
3740
        Update stackframe description for aix/darwin_closure.S.
3741
 
3742
2003-02-06  Jakub Jelinek  
3743
 
3744
        * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3745
        attribute.
3746
 
3747
2003-01-31  Christian Cornelssen  ,
3748
            Andreas Schwab  
3749
 
3750
        * configure.in: Adjust command to source config-ml.in to account
3751
        for changes to the libffi_basedir definition.
3752
        (libffi_basedir): Remove ${srcdir} from value and include trailing
3753
        slash if nonempty.
3754
 
3755
        * configure: Regenerate.
3756
 
3757
2003-01-29  Franz Sirl  
3758
 
3759
        * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3760
 
3761
2003-01-28  Andrew Haley  
3762
 
3763
        * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3764
        * src/x86/ffi64.c (ffi_prep_closure): New.
3765
        (ffi_closure_UNIX64_inner): New.
3766
        * src/x86/unix64.S (ffi_closure_UNIX64): New.
3767
 
3768
2003-01-27  Alexandre Oliva  
3769
 
3770
        * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3771
        Remove USE_LIBDIR conditional.
3772
        * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3773
        * Makefile.in, configure: Rebuilt.
3774
 
3775
2003-01027  David Edelsohn  
3776
 
3777
        * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3778
        * Makefile.in: Regenerate.
3779
 
3780
2003-01-22  Andrew Haley  
3781
 
3782
        * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3783
        unwind info.
3784
 
3785
2003-01-21  Andreas Tobler  
3786
 
3787
        * src/powerpc/darwin.S: Add unwind info.
3788
        * src/powerpc/darwin_closure.S: Likewise.
3789
 
3790
2003-01-14  Andrew Haley  
3791
 
3792
        * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3793
        (ffi_prep_cif_machdep): Likewise.
3794
        * src/x86/unix64.S: Add unwind info.
3795
 
3796
2003-01-14  Andreas Jaeger  
3797
 
3798
        * src/ffitest.c (main): Only use ffi_closures if those are
3799
        supported.
3800
 
3801
2003-01-13 Andreas Tobler 
3802
 
3803
        * libffi/src/ffitest.c
3804
         add closure testcases
3805
 
3806
2003-01-13 Kevin B. Hendricks 
3807
 
3808
        * libffi/src/powerpc/ffi.c
3809
         fix alignment bug for float (4 byte aligned iso 8 byte)
3810
 
3811
2003-01-09  Geoffrey Keating  
3812
 
3813
        * src/powerpc/ffi_darwin.c: Remove RCS version string.
3814
        * src/powerpc/darwin.S: Remove RCS version string.
3815
 
3816
2003-01-03  Jeff Sturm  
3817
 
3818
        * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3819
        * src/ffitest.c (main): Use static storage for closure.
3820
        * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3821
        * src/sparc/v8.S (ffi_closure_v8): New.
3822
        * src/sparc/v9.S (ffi_closure_v9): New.
3823
 
3824
2002-11-10  Ranjit Mathew 
3825
 
3826
        * include/ffi.h.in: Added FFI_STDCALL ffi_type
3827
          enumeration for X86_WIN32.
3828
        * src/x86/win32.S: Added ffi_call_STDCALL function
3829
          definition.
3830
        * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3831
          switch cases for recognising FFI_STDCALL and
3832
          calling ffi_call_STDCALL if target is X86_WIN32.
3833
        * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3834
          stdcall versions of the "my_strlen" and "many"
3835
          test functions (for X86_WIN32).
3836
          Added test cases to test stdcall invocation using
3837
          these functions.
3838
 
3839
2002-12-02  Kaz Kojima  
3840
 
3841
        * src/sh/sysv.S: Add DWARF2 unwind info.
3842
 
3843
2002-11-27  Ulrich Weigand  
3844
 
3845
        * src/s390/sysv.S (.eh_frame section): Make section read-only.
3846
 
3847
2002-11-26  Jim Wilson  
3848
 
3849
        * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3850
 
3851
2002-11-23  H.J. Lu 
3852
 
3853
        * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3854
        Include ../config/accross.m4.
3855
        * aclocal.m4; Rebuild.
3856
        * configure: Likewise.
3857
 
3858
2002-11-15  Ulrich Weigand  
3859
 
3860
        * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3861
 
3862
2002-11-11  DJ Delorie  
3863
 
3864
        * configure.in: Look for common files in the right place.
3865
 
3866
2002-10-08  Ulrich Weigand  
3867
 
3868
        * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3869
        raw data as _Jv_word values, not ffi_raw.
3870
        (ffi_java_ptrarray_to_raw): Likewise.
3871
        (ffi_java_rvalue_to_raw): New function.
3872
        (ffi_java_raw_call): Call it.
3873
        (ffi_java_raw_to_rvalue): New function.
3874
        (ffi_java_translate_args): Call it.
3875
        * src/ffitest.c (closure_test_fn): Interpret return value
3876
        as ffi_arg, not int.
3877
        * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3878
        FFI_TYPE_POINTER case.
3879
        (ffi_closure_helper_SYSV): Likewise.  Also, assume return
3880
        values extended to word size.
3881
 
3882
2002-10-02  Andreas Jaeger  
3883
 
3884
        * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3885
 
3886
2002-10-01  Bo Thorsen  
3887
 
3888
        * include/ffi.h.in: Fix i386 win32 compilation.
3889
 
3890
2002-09-30  Ulrich Weigand  
3891
 
3892
        * configure.in: Add s390x-*-linux-* target.
3893
        * configure: Regenerate.
3894
        * include/ffi.h.in: Define S390X for s390x targets.
3895
        (FFI_CLOSURES): Define for s390/s390x.
3896
        (FFI_TRAMPOLINE_SIZE): Likewise.
3897
        (FFI_NATIVE_RAW_API): Likewise.
3898
        * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3899
        * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
3900
        * src/s390/ffi.c: Major rework of existing code.  Add support for
3901
        s390x targets.  Add closure support.
3902
        * src/s390/sysv.S: Likewise.
3903
 
3904
2002-09-29  Richard Earnshaw  
3905
 
3906
        * src/arm/sysv.S: Fix typo.
3907
 
3908
2002-09-28  Richard Earnshaw  
3909
 
3910
        * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
3911
        has defined __USER_LABEL_PREFIX__, then use it in CNAME.
3912
        (ffi_call_SYSV): Handle soft-float.
3913
 
3914
2002-09-27  Bo Thorsen  
3915
 
3916
        * include/ffi.h.in: Fix multilib x86-64 support.
3917
 
3918
2002-09-22  Kaveh R. Ghazi  
3919
 
3920
        * Makefile.am (all-multi): Fix multilib parallel build.
3921
 
3922
2002-07-19  Kaz Kojima  
3923
 
3924
        * configure.in (sh[34]*-*-linux*): Add brackets.
3925
        * configure: Regenerate.
3926
 
3927
2002-07-18  Kaz Kojima  
3928
 
3929
        * Makefile.am: Add SH support.
3930
        * Makefile.in: Regenerate.
3931
        * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
3932
        * configure: Regenerate.
3933
        * include/ffi.h.in: Add SH support.
3934
        * src/sh/ffi.c: New file.
3935
        * src/sh/sysv.S: New file.
3936
        * src/types.c: Add SH support.
3937
 
3938
2002-07-16  Bo Thorsen  
3939
 
3940
        * src/x86/ffi64.c: New file that adds x86-64 support.
3941
        * src/x86/unix64.S: New file that handles argument setup for
3942
        x86-64.
3943
        * src/x86/sysv.S: Don't use this on x86-64.
3944
        * src/x86/ffi.c: Don't use this on x86-64.
3945
        Remove unused vars.
3946
        * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
3947
        for x86-64.
3948
        * src/ffitest.c (struct6): New test that tests a special case in
3949
        the x86-64 ABI.
3950
        (struct7): Likewise.
3951
        (struct8): Likewise.
3952
        (struct9): Likewise.
3953
        (closure_test_fn): Silence warning about this when it's not used.
3954
        (main): Add the new tests.
3955
        (main): Fix a couple of wrong casts and silence some compiler warnings.
3956
        * include/ffi.h.in: Add x86-64 ABI definition.
3957
        * fficonfig.h.in: Regenerate.
3958
        * Makefile.am: Add x86-64 support.
3959
        * configure.in: Likewise.
3960
        * Makefile.in: Regenerate.
3961
        * configure: Likewise.
3962
 
3963
2002-06-24  Bo Thorsen  
3964
 
3965
        * src/types.c: Merge settings for similar architectures.
3966
        Add x86-64 sizes and alignments.
3967
 
3968
2002-06-23  Bo Thorsen  
3969
 
3970
        * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
3971
        * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
3972
        * src/mips/ffi.c (ffi_prep_args): Likewise.
3973
        * src/m68k/ffi.c (ffi_prep_args): Likewise.
3974
 
3975
2002-07-18  H.J. Lu  (hjl@gnu.org)
3976
 
3977
        * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
3978
        (libffi_la_SOURCES): Support MIPS_LINUX.
3979
        (libffi_convenience_la_SOURCES): Likewise.
3980
        * Makefile.in: Regenerated.
3981
 
3982
        * configure.in (mips64*-*): Skip.
3983
        (mips*-*-linux*): New.
3984
        * configure: Regenerated.
3985
 
3986
        * src/mips/ffi.c: Include .
3987
 
3988
2002-06-06  Ulrich Weigand  
3989
 
3990
        * src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
3991
 
3992
2002-05-27  Roger Sayle  
3993
 
3994
        * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
3995
 
3996
2002-05-27  Bo Thorsen  
3997
 
3998
        * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
3999
        fix formatting.
4000
 
4001
2002-05-13  Andreas Tobler  
4002
 
4003
        * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4004
        beginning of function (for older apple cc).
4005
 
4006
2002-05-08  Alexandre Oliva  
4007
 
4008
        * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4009
        script entry, and set LD to it when configuring multilibs.
4010
        * configure: Rebuilt.
4011
 
4012
2002-05-05  Jason Thorpe  
4013
 
4014
        * configure.in (sparc64-*-netbsd*): Add target.
4015
        (sparc-*-netbsdelf*): Likewise.
4016
        * configure: Regenerate.
4017
 
4018
2002-04-28  David S. Miller  
4019
 
4020
        * configure.in, configure: Fix SPARC test in previous change.
4021
 
4022
2002-04-29  Gerhard Tonn  
4023
 
4024
        * Makefile.am: Add Linux for S/390 support.
4025
        * Makefile.in: Regenerate.
4026
        * configure.in: Add Linux for S/390 support.
4027
        * configure: Regenerate.
4028
        * include/ffi.h.in: Add Linux for S/390 support.
4029
        * src/s390/ffi.c: New file from libffi CVS tree.
4030
        * src/s390/sysv.S: New file from libffi CVS tree.
4031
 
4032
2002-04-28  Jakub Jelinek  
4033
 
4034
        * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4035
        %r_disp32().
4036
        * src/sparc/v8.S: Use it.
4037
        * src/sparc/v9.S: Likewise.
4038
        * fficonfig.h.in: Rebuilt.
4039
        * configure: Rebuilt.
4040
 
4041
2002-04-08  Hans Boehm  
4042
 
4043
        * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4044
        correctly.
4045
        * src/ia64/unix.S: Add unwind information. Fix comments.
4046
        Save sp in a way that's compatible with unwind info.
4047
        (ffi_call_unix): Correctly restore sp in all cases.
4048
        * src/ia64/ffi.c: Add, fix comments.
4049
 
4050
2002-04-08  Jakub Jelinek  
4051
 
4052
        * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4053
 
4054
2002-04-06  Jason Thorpe  
4055
 
4056
        * configure.in (alpha*-*-netbsd*): Add target.
4057
        * configure: Regenerate.
4058
 
4059
2002-04-04  Jeff Sturm  
4060
 
4061
        * src/sparc/v8.S: Add unwind info.
4062
        * src/sparc/v9.S: Likewise.
4063
 
4064
2002-03-30  Krister Walfridsson  
4065
 
4066
        * configure.in: Enable i*86-*-netbsdelf*.
4067
        * configure: Rebuilt.
4068
 
4069
2002-03-29  David Billinghurst 
4070
 
4071
        PR other/2620
4072
        * src/mips/n32.s: Delete
4073
        * src/mips/o32.s: Delete
4074
 
4075
2002-03-21  Loren J. Rittle  
4076
 
4077
        * configure.in: Enable alpha*-*-freebsd*.
4078
        * configure: Rebuilt.
4079
 
4080
2002-03-17  Bryce McKinlay  
4081
 
4082
        * Makefile.am: libfficonvenience -> libffi_convenience.
4083
        * Makefile.in: Rebuilt.
4084
 
4085
        * Makefile.am: Define ffitest_OBJECTS.
4086
        * Makefile.in: Rebuilt.
4087
 
4088
2002-03-07  Andreas Tobler  
4089
            David Edelsohn  
4090
 
4091
        * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4092
        (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4093
        (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4094
        * Makefile.in: Regenerate.
4095
        * include/ffi.h.in: Add AIX and Darwin closure definitions.
4096
        * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4097
        (flush_icache, flush_range): New functions.
4098
        (ffi_closure_helper_DARWIN): New function.
4099
        * src/powerpc/aix_closure.S: New file.
4100
        * src/powerpc/darwin_closure.S: New file.
4101
 
4102
2002-02-24  Jeff Sturm  
4103
 
4104
        * include/ffi.h.in: Add typedef for ffi_arg.
4105
        * src/ffitest.c (main): Declare rint with ffi_arg.
4106
 
4107
2002-02-21  Andreas Tobler  
4108
 
4109
        * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4110
        number of GPRs for floating-point arguments.
4111
 
4112
2002-01-31  Anthony Green  
4113
 
4114
        * configure: Rebuilt.
4115
        * configure.in: Replace CHECK_SIZEOF and endian tests with
4116
        cross-compiler friendly macros.
4117
        * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4118
        macros.
4119
 
4120
2002-01-18  David Edelsohn  
4121
 
4122
        * src/powerpc/darwin.S (_ffi_call_AIX): New.
4123
        * src/powerpc/aix.S (ffi_call_DARWIN): New.
4124
 
4125
2002-01-17  David Edelsohn  
4126
 
4127
        * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4128
        (TARGET_SRC_POWERPC_AIX): New.
4129
        (POWERPC_AIX): New stanza.
4130
        * Makefile.in: Regenerate.
4131
        * configure.in: Add AIX case.
4132
        * configure: Regenerate.
4133
        * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4134
        * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4135
        size.  Fix "long double" support.
4136
        (ffi_call): Add FFI_AIX case.
4137
        * src/powerpc/aix.S: New.
4138
 
4139
2001-10-09  John Hornkvist  
4140
 
4141
        Implement Darwin PowerPC ABI.
4142
        * configure.in: Handle powerpc-*-darwin*.
4143
        * Makefile.am: Set source files for POWERPC_DARWIN.
4144
        * configure: Rebuilt.
4145
        * Makefile.in: Rebuilt.
4146
        * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4147
        POWERPC_DARWIN.
4148
        * src/powerpc/darwin.S: New file.
4149
        * src/powerpc/ffi_darwin.c: New file.
4150
 
4151
2001-10-07  Joseph S. Myers  
4152
 
4153
        * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
4154
 
4155
2001-07-16  Rainer Orth  
4156
 
4157
        * src/x86/sysv.S: Avoid gas-only .balign directive.
4158
        Use C style comments.
4159
 
4160
2001-07-16  Rainer Orth  
4161
 
4162
        * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
4163
        Fixes PR bootstrap/3563.
4164
 
4165
2001-06-26  Rainer Orth  
4166
 
4167
        * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
4168
 
4169
2001-06-25  Rainer Orth  
4170
 
4171
        * configure.in: Recognize sparc*-sun-* host.
4172
        * configure: Regenerate.
4173
 
4174
2001-06-06  Andrew Haley  
4175
 
4176
        * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
4177
 
4178
2001-06-03  Andrew Haley  
4179
 
4180
        * src/alpha/osf.S: Add unwind info.
4181
        * src/powerpc/sysv.S: Add unwind info.
4182
        * src/powerpc/ppc_closure.S: Likewise.
4183
 
4184
2000-05-31  Jeff Sturm  
4185
 
4186
        * configure.in: Fix AC_ARG_ENABLE usage.
4187
        * configure: Rebuilt.
4188
 
4189
2001-05-06  Bryce McKinlay  
4190
 
4191
        * configure.in: Remove warning about beta code.
4192
        * configure: Rebuilt.
4193
 
4194
2001-04-25  Hans Boehm 
4195
 
4196
        * src/ia64/unix.S: Restore stack pointer when returning from
4197
        ffi_closure_UNIX.
4198
        * src/ia64/ffi.c: Fix typo in comment.
4199
 
4200
2001-04-18  Jim Wilson  
4201
 
4202
        * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
4203
        to eliminate RAW DV.
4204
 
4205
2001-04-12  Bryce McKinlay  
4206
 
4207
        * Makefile.am: Make a libtool convenience library.
4208
        * Makefile.in: Rebuilt.
4209
 
4210
2001-03-29  Bryce McKinlay  
4211
 
4212
        * configure.in: Use different syntax for subdirectory creation.
4213
        * configure: Rebuilt.
4214
 
4215
2001-03-27  Jon Beniston  
4216
 
4217
        * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
4218
        * configure: Rebuilt.
4219
        * Makefile.am: Added X86_WIN32 target support.
4220
        * Makefile.in: Rebuilt.
4221
 
4222
        * include/ffi.h.in: Added X86_WIN32 target support.
4223
 
4224
        * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
4225
        * src/types.c: Added X86_WIN32 target support.
4226
 
4227
        * src/x86/win32.S: New file. Based on sysv.S, but with EH
4228
        stuff removed and made to work with CygWin's gas.
4229
 
4230
2001-03-26  Bryce McKinlay  
4231
 
4232
        * configure.in: Make target subdirectory in build dir.
4233
        * Makefile.am: Override suffix based rules to specify correct output
4234
        subdirectory.
4235
        * Makefile.in: Rebuilt.
4236
        * configure: Rebuilt.
4237
 
4238
2001-03-23  Kevin B Hendricks  
4239
 
4240
        * src/powerpc/ppc_closure.S: New file.
4241
        * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
4242
        involving long long and register pairs.
4243
        (ffi_prep_closure): New function.
4244
        (flush_icache): Likewise.
4245
        (ffi_closure_helper_SYSV): Likewise.
4246
        * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
4247
        (FFI_TRAMPOLINE_SIZE): Likewise.
4248
        (FFI_NATIVE_RAW_API): Likewise.
4249
        * Makefile.in: Rebuilt.
4250
        * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
4251
        (TARGET_SRC_POWERPC): Likewise.
4252
 
4253
2001-03-19  Tom Tromey  
4254
 
4255
        * Makefile.in: Rebuilt.
4256
        * Makefile.am (ffitest_LDFLAGS): New macro.
4257
 
4258
2001-03-02  Nick Clifton  
4259
 
4260
        * include/ffi.h.in: Remove RCS ident string.
4261
        * include/ffi_mips.h: Remove RCS ident string.
4262
        * src/debug.c: Remove RCS ident string.
4263
        * src/ffitest.c: Remove RCS ident string.
4264
        * src/prep_cif.c: Remove RCS ident string.
4265
        * src/types.c: Remove RCS ident string.
4266
        * src/alpha/ffi.c: Remove RCS ident string.
4267
        * src/alpha/osf.S: Remove RCS ident string.
4268
        * src/arm/ffi.c: Remove RCS ident string.
4269
        * src/arm/sysv.S: Remove RCS ident string.
4270
        * src/mips/ffi.c: Remove RCS ident string.
4271
        * src/mips/n32.S: Remove RCS ident string.
4272
        * src/mips/o32.S: Remove RCS ident string.
4273
        * src/sparc/ffi.c: Remove RCS ident string.
4274
        * src/sparc/v8.S: Remove RCS ident string.
4275
        * src/sparc/v9.S: Remove RCS ident string.
4276
        * src/x86/ffi.c: Remove RCS ident string.
4277
        * src/x86/sysv.S: Remove RCS ident string.
4278
 
4279
2001-02-08  Joseph S. Myers  
4280
 
4281
        * include/ffi.h.in: Change sourceware.cygnus.com references to
4282
        gcc.gnu.org.
4283
 
4284
2000-12-09  Richard Henderson  
4285
 
4286
        * src/alpha/ffi.c (ffi_call): Simplify struct return test.
4287
        (ffi_closure_osf_inner): Index rather than increment avalue
4288
        and arg_types.  Give ffi_closure_osf the raw return value type.
4289
        * src/alpha/osf.S (ffi_closure_osf): Handle return value type
4290
        promotion.
4291
 
4292
2000-12-07  Richard Henderson  
4293
 
4294
        * src/raw_api.c (ffi_translate_args): Fix typo.
4295
        (ffi_prep_closure): Likewise.
4296
 
4297
        * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
4298
        FFI_TRAMPOLINE_SIZE.
4299
        * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
4300
        cif->bytes for new ffi_call_osf implementation.
4301
        (ffi_prep_args): Absorb into ...
4302
        (ffi_call): ... here.  Do all stack allocation here and
4303
        avoid a callback function.
4304
        (ffi_prep_closure, ffi_closure_osf_inner): New.
4305
        * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
4306
        (ffi_closure_osf): New.
4307
 
4308
2000-09-10  Alexandre Oliva  
4309
 
4310
        * config.guess, config.sub, install-sh: Removed.
4311
        * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
4312
        * Makefile.in: Rebuilt.
4313
 
4314
        * acinclude.m4: Include libtool macros from the top level.
4315
        * aclocal.m4, configure: Rebuilt.
4316
 
4317
2000-08-22  Alexandre Oliva  
4318
 
4319
        * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
4320
        * configure: Rebuilt.
4321
 
4322
2000-05-11  Scott Bambrough  
4323
 
4324
        * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
4325
        memory correctly.  Use conditional instructions, not branches where
4326
        possible.
4327
 
4328
2000-05-04  Tom Tromey  
4329
 
4330
        * configure: Rebuilt.
4331
        * configure.in: Match `arm*-*-linux-*'.
4332
        From Chris Dornan .
4333
 
4334
2000-04-28  Jakub Jelinek  
4335
 
4336
        * Makefile.am (SUBDIRS): Define.
4337
        (AM_MAKEFLAGS): Likewise.
4338
        (Multilib support.): Add section.
4339
        * Makefile.in: Rebuilt.
4340
        * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4341
        New variables. Set for gcc using -print-multi-lib. Export them
4342
        to libtool.
4343
        (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
4344
        * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
4345
        for -shared links.
4346
        (extra_compiler_flags_value, extra_compiler_flags): Check these
4347
        for extra compiler options which need to be passed down in
4348
        compiler_flags.
4349
 
4350
2000-04-16  Anthony Green  
4351
 
4352
        * configure: Rebuilt.
4353
        * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
4354
 
4355
2000-04-14  Jakub Jelinek  
4356
 
4357
        * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
4358
        Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
4359
        * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
4360
        Replace all void * sizeofs with sizeof(int).
4361
        Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
4362
        different than DOUBLE.
4363
        Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
4364
        (ffi_prep_args_v9): New function.
4365
        (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
4366
        (ffi_V9_return_struct): New function.
4367
        (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
4368
        32bit code (not yet cross-arch calls).
4369
        * src/sparc/v8.S: Add struct return delay nop.
4370
        Handle long long.
4371
        * src/sparc/v9.S: New file.
4372
        * src/prep_cif.c (ffi_prep_cif): Return structure pointer
4373
        is used on sparc64 only for structures larger than 32 bytes.
4374
        Pass by reference for structures is done for structure arguments
4375
        larger than 16 bytes.
4376
        * src/ffitest.c (main): Use 64bit rint on sparc64.
4377
        Run long long tests on sparc.
4378
        * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
4379
        sparc64.
4380
        (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
4381
        on sparc64.
4382
        * configure.in (sparc-*-linux*): New supported target.
4383
        (sparc64-*-linux*): Likewise.
4384
        * configure: Rebuilt.
4385
        * Makefile.am: Add v9.S to SPARC files.
4386
        * Makefile.in: Likewise.
4387
        (LINK): Surround $(CCLD) into double quotes, so that multilib
4388
        compiles work correctly.
4389
 
4390
2000-04-04  Alexandre Petit-Bianco  
4391
 
4392
        * configure: Rebuilt.
4393
        * configure.in: (i*86-*-solaris*): New libffi target. Patch
4394
        proposed by Bryce McKinlay.
4395
 
4396
2000-03-20  Tom Tromey  
4397
 
4398
        * Makefile.in: Hand edit for java_raw_api.lo.
4399
 
4400
2000-03-08  Bryce McKinlay  
4401
 
4402
        * config.guess, config.sub: Update from the gcc tree.
4403
        Fix for PR libgcj/168.
4404
 
4405
2000-03-03  Tom Tromey  
4406
 
4407
        * Makefile.in: Fixed ia64 by hand.
4408
 
4409
        * configure: Rebuilt.
4410
        * configure.in (--enable-multilib): New option.
4411
        (libffi_basedir): New subst.
4412
        (AC_OUTPUT): Added multilib code.
4413
 
4414
2000-03-02  Tom Tromey  
4415
 
4416
        * Makefile.in: Rebuilt.
4417
        * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
4418
        directory name.
4419
 
4420
2000-02-25  Hans Boehm 
4421
 
4422
        * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
4423
        files.
4424
        * src/raw_api.c (ffi_translate_args): Fixed typo in argument
4425
        list.
4426
        (ffi_prep_raw_closure): Use ffi_translate_args, not
4427
        ffi_closure_translate.
4428
        * src/java_raw_api.c: New file.
4429
        * src/ffitest.c (closure_test_fn): New function.
4430
        (main): Define `rint' as long long on IA64.  Added new test when
4431
        FFI_CLOSURES is defined.
4432
        * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
4433
        (ffi_abi): Recognize IA64.
4434
        (ffi_raw): Added `flt' field.
4435
        Added "Java raw API" code.
4436
        * configure.in: Recognize ia64.
4437
        * Makefile.am (TARGET_SRC_IA64): New macro.
4438
        (libffi_la_common_SOURCES): Added java_raw_api.c.
4439
        (libffi_la_SOURCES): Define in IA64 case.
4440
 
4441
2000-01-04  Tom Tromey  
4442
 
4443
        * Makefile.in: Rebuilt with newer automake.
4444
 
4445
1999-12-31  Tom Tromey  
4446
 
4447
        * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
4448
 
4449
1999-09-01  Tom Tromey  
4450
 
4451
        * include/ffi.h.in: Removed PACKAGE and VERSION defines and
4452
        undefs.
4453
        * fficonfig.h.in: Rebuilt.
4454
        * configure: Rebuilt.
4455
        * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
4456
        Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
4457
        * acconfig.h: Don't #undef PACKAGE or VERSION.
4458
 
4459
1999-08-09  Anthony Green  
4460
 
4461
        * include/ffi.h.in: Try to work around messy header problem
4462
        with PACKAGE and VERSION.
4463
 
4464
        * configure: Rebuilt.
4465
        * configure.in: Change version to 2.00-beta.
4466
 
4467
        * fficonfig.h.in: Rebuilt.
4468
        * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
4469
 
4470
        * src/x86/ffi.c (ffi_raw_call): Rename.
4471
 
4472
1999-08-02  Kresten Krab Thorup  
4473
 
4474
        * src/x86/ffi.c (ffi_closure_SYSV): New function.
4475
        (ffi_prep_incoming_args_SYSV): Ditto.
4476
        (ffi_prep_closure): Ditto.
4477
        (ffi_closure_raw_SYSV): Ditto.
4478
        (ffi_prep_raw_closure): More ditto.
4479
        (ffi_call_raw): Final ditto.
4480
 
4481
        * include/ffi.h.in: Add definitions for closure and raw API.
4482
 
4483
        * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4484
        FFI_TYPE_UINT64.
4485
 
4486
        * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
4487
 
4488
        * src/raw_api.c: New file.
4489
 
4490
        * include/ffi.h.in (ffi_raw): New type.
4491
        (UINT_ARG, SINT_ARG): New defines.
4492
        (ffi_closure, ffi_raw_closure): New types.
4493
        (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4494
 
4495
        * configure.in: Add check for endianness and sizeof void*.
4496
 
4497
        * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
4498
        instead of directly.
4499
 
4500
        * configure: Rebuilt.
4501
 
4502
Thu Jul  8 14:28:42 1999  Anthony Green  
4503
 
4504
        * configure.in: Add x86 and powerpc BeOS configurations.
4505
        From Makoto Kato .
4506
 
4507
1999-05-09  Anthony Green  
4508
 
4509
        * configure.in: Add warning about this being beta code.
4510
        Remove src/Makefile.am from the picture.
4511
        * configure: Rebuilt.
4512
 
4513
        * Makefile.am: Move logic from src/Makefile.am.  Add changes
4514
        to support libffi as a target library.
4515
        * Makefile.in: Rebuilt.
4516
 
4517
        * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
4518
        Upgraded to new autoconf, automake, libtool.
4519
 
4520
        * README: Tweaks.
4521
 
4522
        * LICENSE: Update copyright date.
4523
 
4524
        * src/Makefile.am, src/Makefile.in: Removed.
4525
 
4526
1998-11-29  Anthony Green  
4527
 
4528
        * include/ChangeLog: Removed.
4529
        * src/ChangeLog: Removed.
4530
        * src/mips/ChangeLog: Removed.
4531
        * src/sparc/ChangeLog: Remboved.
4532
        * src/x86/ChangeLog: Removed.
4533
 
4534
        * ChangeLog.v1: Created.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.