libffi merge

View: New views
20 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 - 3 | Next >

libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

libffi upstream and gcc libffi are out of sync.

I'm doing a two-way merge.  Please don't commit patches to either repo for
the next few days.

Thanks,
Andrew.

Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andrew Haley wrote:
> libffi upstream and gcc libffi are out of sync.
>
> I'm doing a two-way merge.  Please don't commit patches to either repo for
> the next few days.

Here is the first tranche of changes, being the merge from gcc to libffi.

Andrew.

2009-05-22  Dave Korn  <dave.korn.cygwin@...>

       * src/x86/win32.S (_ffi_closure_STDCALL):  New function.
       (.eh_frame):  Add FDE for it.

2009-05-22  Dave Korn  <dave.korn.cygwin@...>

       * configure.ac:  Also check if assembler supports pc-relative
       relocs on X86_WIN32 targets.
       * configure:  Regenerate.
       * src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
       (_ffi_call_SYSV):  Add missing function type symbol .def and
       add EH markup labels.
       (_ffi_call_STDCALL):  Likewise.
       (_ffi_closure_SYSV):  Likewise.
       (_ffi_closure_raw_SYSV):  Likewise.
       (.eh_frame):  Add hand-crafted EH data.

2008-11-21  Eric Botcazou  <ebotcazou@...>

       * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
       signed/unsigned int8/16 return values.
       * src/sparc/v8.S (ffi_call_v8): Likewise.
       (ffi_closure_v8): Likewise.

2008-08-25  Andreas Tobler  <a.tobler@...>

       * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
       FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
       Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
       Adjust copyright notice.
       * src/powerpc/ffi.c: Add two new flags to indicate if we have one
       register or two register to use for FFI_SYSV structs.
       (ffi_prep_cif_machdep): Pass the right register flag introduced above.
       (ffi_closure_helper_SYSV): Fix the return type for
       FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
       Adjust copyright notice.

2008-07-16  Kaz Kojima  <kkojima@...>

       * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
       int.

2008-03-26  Kaz Kojima  <kkojima@...>

       * src/sh/sysv.S: Add .note.GNU-stack on Linux.
       * src/sh64/sysv.S: Likewise.

2008-03-26  Daniel Jacobowitz  <dan@...>

       * src/arm/sysv.S: Fix ARM comment marker.

2008-02-12  Bjoern Koenig  <bkoenig@...>
           Andreas Tobler  <a.tobler@...>

       * configure.ac: Add amd64-*-freebsd* target.
       * configure: Regenerate.

2008-01-30  H.J. Lu  <hongjiu.lu@...>

       PR libffi/34612
       * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
       returning struct.

2006-03-15  Kaz Kojima  <kkojima@...>

        * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
        passed with FP registers correctly.
        (ffi_closure_helper_SYSV): Likewise.
        * src/sh64/sysv.S: Likewise.

Index: configure.ac
===================================================================
RCS file: /cvs/libffi/libffi/configure.ac,v
retrieving revision 1.24
diff -u -r1.24 configure.ac
--- configure.ac 19 Dec 2008 16:13:45 -0000 1.24
+++ configure.ac 3 Jun 2009 10:49:17 -0000
@@ -53,6 +53,10 @@
  TARGET=X86_64; TARGETDIR=x86
    ;;
 
+  amd64-*-freebsd*)
+ TARGET=X86_64; TARGETDIR=x86
+ ;;
+
   cris-*-*)
  TARGET=LIBFFI_CRIS; TARGETDIR=cris
  ;;
@@ -245,7 +249,7 @@
     fi
 fi
 
-if test x$TARGET = xX86 || test x$TARGET = xX86_64; then
+if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then
     AC_CACHE_CHECK([assembler supports pc related relocs],
  libffi_cv_as_x86_pcrel, [
  libffi_cv_as_x86_pcrel=yes
Index: src/sh64/ffi.c
===================================================================
RCS file: /cvs/libffi/libffi/src/sh64/ffi.c,v
retrieving revision 1.4
diff -u -r1.4 ffi.c
--- src/sh64/ffi.c 26 Feb 2008 17:34:36 -0000 1.4
+++ src/sh64/ffi.c 3 Jun 2009 10:49:17 -0000
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 2003, 2004 Kaz Kojima
+   ffi.c - Copyright (c) 2003, 2004, 2006 Kaz Kojima
            Copyright (c) 2008 Anthony Green
   
    SuperH SHmedia Foreign Function Interface
@@ -162,6 +162,7 @@
   int n, m;
   int greg;
   int freg;
+  int fpair = -1;
 
   greg = (return_type (cif->rtype) == FFI_TYPE_STRUCT ? 1 : 0);
   freg = 0;
@@ -177,7 +178,13 @@
   cif->bytes += sizeof (UINT64) - sizeof (float);
   if (freg >= NFREGARG - 1)
     continue;
-  freg++;
+  if (fpair < 0)
+    {
+      fpair = freg;
+      freg += 2;
+    }
+  else
+    fpair = -1;
   cif->flags2 += ((cif->arg_types)[i]->type) << (2 * j++);
   break;
 
@@ -186,7 +193,6 @@
     continue;
   if ((freg + 1) < NFREGARG)
     {
-      freg = (freg + 1) & ~1;
       freg += 2;
       cif->flags2 += ((cif->arg_types)[i]->type) << (2 * j++);
     }
@@ -352,6 +358,7 @@
   int i, avn;
   int greg, freg;
   ffi_cif *cif;
+  int fpair = -1;
 
   cif = closure->cif;
   avalue = alloca (cif->nargs * sizeof (void *));
@@ -360,7 +367,7 @@
      returns the data directly to the caller.  */
   if (return_type (cif->rtype) == FFI_TYPE_STRUCT)
     {
-      rvalue = *pgr;
+      rvalue = (UINT64 *) *pgr;
       greg = 1;
     }
   else
@@ -404,11 +411,24 @@
   if ((*p_arg)->type == FFI_TYPE_FLOAT)
     {
       if (freg < NFREGARG - 1)
+ {
+  if (fpair >= 0)
+    {
+      avalue[i] = (UINT32 *) pfr + fpair;
+      fpair = -1;
+    }
+  else
+    {
 #ifdef __LITTLE_ENDIAN__
- avalue[i] = (UINT32 *) pfr + (1 ^ freg++);
+      fpair = freg;
+      avalue[i] = (UINT32 *) pfr + (1 ^ freg);
 #else
- avalue[i] = (UINT32 *) pfr + freg++;
+      fpair = 1 ^ freg;
+      avalue[i] = (UINT32 *) pfr + freg;
 #endif
+      freg += 2;
+    }
+ }
       else
 #ifdef __LITTLE_ENDIAN__
  avalue[i] = pgr + greg;
@@ -430,7 +450,6 @@
     avalue[i] = pgr + greg;
   else
     {
-      freg = (freg + 1) & ~1;
       avalue[i] = pfr + (freg >> 1);
       freg += 2;
     }
Index: src/sh64/sysv.S
===================================================================
RCS file: /cvs/libffi/libffi/src/sh64/sysv.S,v
retrieving revision 1.4
diff -u -r1.4 sysv.S
--- src/sh64/sysv.S 17 Jul 2008 13:13:52 -0000 1.4
+++ src/sh64/sysv.S 3 Jun 2009 10:49:17 -0000
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   sysv.S - Copyright (c) 2003, 2004, 2008 Kaz Kojima
+   sysv.S - Copyright (c) 2003, 2004, 2006, 2008 Kaz Kojima
   
    SuperH SHmedia Foreign Function Interface
 
@@ -85,6 +85,7 @@
  addi r15, 64, r22
  movi 0, r0
  movi 0, r1
+ movi -1, r23
 
  pt/l 1f, tr1
  bnei/l r29, FFI_TYPE_STRUCT, tr1
@@ -107,9 +108,6 @@
 
 .L_pass_d:
  addi r0, 1, r0
- addi r1, 1, r1
- andi r1, ~1, r1
-
  pt/l 3f, tr0
  movi 12, r20
  bge/l r1, r20, tr0
@@ -159,13 +157,23 @@
  addi.l r15, 8, r15
 3:
  pt/l .L_pass, tr0
- addi r1, 1, r1
  blink tr0, r63
 
 .L_pop_f:
  pt/l .L_pop_f_tbl, tr1
+ pt/l 5f, tr2
  gettr tr1, r20
+ bge/l r23, r63, tr2
+ add r1, r63, r23
  shlli r1, 3, r21
+ addi r1, 2, r1
+ add r20, r21, r20
+ ptabs/l r20, tr1
+ blink tr1, r63
+5:
+ addi r23, 1, r21
+ movi -1, r23
+ shlli r21, 3, r21
  add r20, r21, r20
  ptabs/l r20, tr1
  blink tr1, r63
Index: src/sparc/ffi.c
===================================================================
RCS file: /cvs/libffi/libffi/src/sparc/ffi.c,v
retrieving revision 1.7
diff -u -r1.7 ffi.c
--- src/sparc/ffi.c 26 Feb 2008 17:34:36 -0000 1.7
+++ src/sparc/ffi.c 3 Jun 2009 10:49:17 -0000
@@ -308,14 +308,24 @@
  cif->flags = FFI_TYPE_STRUCT;
       break;
 
+    case FFI_TYPE_SINT8:
+    case FFI_TYPE_UINT8:
+    case FFI_TYPE_SINT16:
+    case FFI_TYPE_UINT16:
+      if (cif->abi == FFI_V9)
+ cif->flags = FFI_TYPE_INT;
+      else
+ cif->flags = cif->rtype->type;
+      break;
+
     case FFI_TYPE_SINT64:
     case FFI_TYPE_UINT64:
-      if (cif->abi != FFI_V9)
- {
-  cif->flags = FFI_TYPE_SINT64;
-  break;
- }
-      /* FALLTHROUGH */
+      if (cif->abi == FFI_V9)
+ cif->flags = FFI_TYPE_INT;
+      else
+ cif->flags = FFI_TYPE_SINT64;
+      break;
+
     default:
       cif->flags = FFI_TYPE_INT;
       break;
Index: src/sparc/v8.S
===================================================================
RCS file: /cvs/libffi/libffi/src/sparc/v8.S,v
retrieving revision 1.6
diff -u -r1.6 v8.S
--- src/sparc/v8.S 26 Feb 2008 19:01:53 -0000 1.6
+++ src/sparc/v8.S 3 Jun 2009 10:49:17 -0000
@@ -73,21 +73,63 @@
  be,a done
  st %f0, [%i4+0] ! (delay)
 
+ cmp %i3, FFI_TYPE_DOUBLE
+ be,a double
+ st %f0, [%i4+0] ! (delay)
+
+ cmp %i3, FFI_TYPE_SINT8
+ be,a sint8
+ sll %o0, 24, %o0 ! (delay)
+
+ cmp %i3, FFI_TYPE_UINT8
+ be,a uint8
+ sll %o0, 24, %o0 ! (delay)
+
+ cmp %i3, FFI_TYPE_SINT16
+ be,a sint16
+ sll %o0, 16, %o0 ! (delay)
+
+ cmp %i3, FFI_TYPE_UINT16
+ be,a uint16
+ sll %o0, 16, %o0 ! (delay)
+
  cmp %i3, FFI_TYPE_SINT64
- be longlong
+ be,a longlong
+ st %o0, [%i4+0] ! (delay)
+done:
+ ret
+ restore
 
- cmp %i3, FFI_TYPE_DOUBLE
- bne done
- nop
- st %f0, [%i4+0]
+double:
  st %f1, [%i4+4]
-
-done:
  ret
  restore
 
-longlong:
+sint8:
+ sra %o0, 24, %o0
+ st %o0, [%i4+0]
+ ret
+ restore
+
+uint8:
+ srl %o0, 24, %o0
+ st %o0, [%i4+0]
+ ret
+ restore
+
+sint16:
+ sra %o0, 16, %o0
+ st %o0, [%i4+0]
+ ret
+ restore
+
+uint16:
+ srl %o0, 16, %o0
  st %o0, [%i4+0]
+ ret
+ restore
+
+longlong:
  st %o1, [%i4+4]
  ret
  restore
@@ -148,7 +190,8 @@
  be done1
 
  cmp %o0, FFI_TYPE_INT
- be integer
+ be done1
+ ld [%fp-8], %i0
 
  cmp %o0, FFI_TYPE_FLOAT
  be,a done1
@@ -166,13 +209,11 @@
  cmp %o0, FFI_TYPE_STRUCT
  be done2
 
- ! FFI_TYPE_SINT64
- ! FFI_TYPE_UINT64
- ld [%fp-4], %i1
+ cmp %o0, FFI_TYPE_SINT64
+ be,a done1
+ ldd [%fp-8], %i0
 
-integer:
  ld [%fp-8], %i0
-
 done1:
  jmp %i7+8
  restore
Index: src/x86/win32.S
===================================================================
RCS file: /cvs/libffi/libffi/src/x86/win32.S,v
retrieving revision 1.5
diff -u -r1.5 win32.S
--- src/x86/win32.S 15 Feb 2008 01:24:06 -0000 1.5
+++ src/x86/win32.S 3 Jun 2009 10:49:17 -0000
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   win32.S - Copyright (c) 1996, 1998, 2001, 2002  Red Hat, Inc.
+   win32.S - Copyright (c) 1996, 1998, 2001, 2002, 2009  Red Hat, Inc.
      Copyright (c) 2001  John Beniton
      Copyright (c) 2002  Ranjit Mathew
 
@@ -31,18 +31,20 @@
 #include <fficonfig.h>
 #include <ffi.h>
 
-.text
+ .text
 
-.globl ffi_prep_args
+ .extern ffi_prep_args
 
         # This assumes we are using gas.
         .balign 16
-.globl _ffi_call_SYSV
-
+ .globl _ffi_call_SYSV
+ .def _ffi_call_SYSV; .scl 2; .type 32; .endef
 _ffi_call_SYSV:
+.LFB1:
         pushl %ebp
+.LCFI0:
         movl  %esp,%ebp
-
+.LCFI1:
         # Make room for all of the new args.
         movl  16(%ebp),%ecx                                                    
         subl  %ecx,%esp
@@ -145,17 +147,19 @@
         movl %ebp,%esp
         popl %ebp
         ret
-
 .ffi_call_SYSV_end:
+.LFE1:
 
         # This assumes we are using gas.
         .balign 16
-.globl _ffi_call_STDCALL
-
+ .globl _ffi_call_STDCALL
+ .def _ffi_call_STDCALL; .scl 2; .type 32; .endef
 _ffi_call_STDCALL:
+.LFB2:
         pushl %ebp
+.LCFI2:
         movl  %esp,%ebp
-
+.LCFI3:
         # Make room for all of the new args.
         movl  16(%ebp),%ecx
         subl  %ecx,%esp
@@ -256,8 +260,8 @@
         movl %ebp,%esp
         popl %ebp
         ret
-
 .ffi_call_STDCALL_end:
+.LFE2:
 
  .globl _ffi_closure_STDCALL
 _ffi_closure_STDCALL:
@@ -275,10 +279,16 @@
  jmp     .Lcls_return_result
 .ffi_closure_STDCALL_end:
 
- .globl _ffi_closure_SYSV
+         # This assumes we are using gas.
+         .balign 16
+ .globl _ffi_closure_SYSV
+ .def _ffi_closure_SYSV; .scl 2; .type 32; .endef
 _ffi_closure_SYSV:
+.LFB3:
  pushl %ebp
+.LCFI4:
  movl %esp, %ebp
+.LCFI5:
  subl $40, %esp
  leal -24(%ebp), %edx
  movl %edx, -12(%ebp) /* resp */
@@ -330,6 +340,7 @@
  movswl (%ecx), %eax
  jmp .Lcls_epilogue
 .ffi_closure_SYSV_end:
+.LFE3:
 
 #if !FFI_NO_RAW_API
 
@@ -338,12 +349,18 @@
 #define RAW_CLOSURE_USER_DATA_OFFSET (RAW_CLOSURE_FUN_OFFSET + 4)
 #define CIF_FLAGS_OFFSET 20
 
- .balign 16
- .globl _ffi_closure_raw_SYSV
+        # This assumes we are using gas.
+        .balign 16
+ .globl _ffi_closure_raw_SYSV
+ .def _ffi_closure_raw_SYSV; .scl 2; .type 32; .endef
 _ffi_closure_raw_SYSV:
+.LFB4:
  pushl %ebp
+.LCFI6:
  movl %esp, %ebp
+.LCFI7:
  pushl %esi
+.LCFI8:
  subl $36, %esp
  movl RAW_CLOSURE_CIF_OFFSET(%eax), %esi /* closure->cif */
  movl RAW_CLOSURE_USER_DATA_OFFSET(%eax), %edx /* closure->user_data */
@@ -387,5 +404,169 @@
  movl -20(%ebp), %edx
  jmp .Lrcls_epilogue
 .ffi_closure_raw_SYSV_end:
+.LFE4:
+
+#endif /* !FFI_NO_RAW_API */
 
+
+ .section .eh_frame,"w"
+.Lframe1:
+.LSCIE1:
+ .long .LECIE1-.LASCIE1  /* Length of Common Information Entry */
+.LASCIE1:
+ .long 0x0 /* CIE Identifier Tag */
+ .byte 0x1 /* CIE Version */
+#ifdef __PIC__
+ .ascii "zR\0" /* CIE Augmentation */
+#else
+ .ascii "\0" /* CIE Augmentation */
+#endif
+ .byte 0x1 /* .uleb128 0x1; CIE Code Alignment Factor */
+ .byte 0x7c /* .sleb128 -4; CIE Data Alignment Factor */
+ .byte 0x8 /* CIE RA Column */
+#ifdef __PIC__
+ .byte 0x1 /* .uleb128 0x1; Augmentation size */
+ .byte 0x1b /* FDE Encoding (pcrel sdata4) */
 #endif
+ .byte 0xc /* DW_CFA_def_cfa CFA = r4 + 4 = 4(%esp) */
+ .byte 0x4 /* .uleb128 0x4 */
+ .byte 0x4 /* .uleb128 0x4 */
+ .byte 0x88 /* DW_CFA_offset, column 0x8 %eip at CFA + 1 * -4 */
+ .byte 0x1 /* .uleb128 0x1 */
+ .align 4
+.LECIE1:
+
+.LSFDE1:
+ .long .LEFDE1-.LASFDE1 /* FDE Length */
+.LASFDE1:
+ .long .LASFDE1-.Lframe1 /* FDE CIE offset */
+#if defined __PIC__ && defined HAVE_AS_X86_PCREL
+ .long .LFB1-. /* FDE initial location */
+#else
+ .long .LFB1
+#endif
+ .long .LFE1-.LFB1 /* FDE address range */
+#ifdef __PIC__
+ .byte 0x0 /* .uleb128 0x0; Augmentation size */
+#endif
+ /* DW_CFA_xxx CFI instructions go here.  */
+
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .long .LCFI0-.LFB1
+ .byte 0xe /* DW_CFA_def_cfa_offset CFA = r4 + 8 = 8(%esp) */
+ .byte 0x8 /* .uleb128 0x8 */
+ .byte 0x85 /* DW_CFA_offset, column 0x5 %ebp at CFA + 2 * -4 */
+ .byte 0x2 /* .uleb128 0x2 */
+
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .long .LCFI1-.LCFI0
+ .byte 0xd /* DW_CFA_def_cfa_register CFA = r5 = %ebp */
+ .byte 0x5 /* .uleb128 0x5 */
+
+ /* End of DW_CFA_xxx CFI instructions.  */
+ .align 4
+.LEFDE1:
+
+
+.LSFDE2:
+ .long .LEFDE2-.LASFDE2 /* FDE Length */
+.LASFDE2:
+ .long .LASFDE2-.Lframe1 /* FDE CIE offset */
+#if defined __PIC__ && defined HAVE_AS_X86_PCREL
+ .long .LFB2-. /* FDE initial location */
+#else
+ .long .LFB2
+#endif
+ .long .LFE2-.LFB2 /* FDE address range */
+#ifdef __PIC__
+ .byte 0x0 /* .uleb128 0x0; Augmentation size */
+#endif
+ /* DW_CFA_xxx CFI instructions go here.  */
+
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .long .LCFI2-.LFB2
+ .byte 0xe /* DW_CFA_def_cfa_offset CFA = r4 + 8 = 8(%esp) */
+ .byte 0x8 /* .uleb128 0x8 */
+ .byte 0x85 /* DW_CFA_offset, column 0x5 %ebp at CFA + 2 * -4 */
+ .byte 0x2 /* .uleb128 0x2 */
+
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .long .LCFI3-.LCFI2
+ .byte 0xd /* DW_CFA_def_cfa_register CFA = r5 = %ebp */
+ .byte 0x5 /* .uleb128 0x5 */
+
+ /* End of DW_CFA_xxx CFI instructions.  */
+ .align 4
+.LEFDE2:
+
+
+.LSFDE3:
+ .long .LEFDE3-.LASFDE3 /* FDE Length */
+.LASFDE3:
+ .long .LASFDE3-.Lframe1 /* FDE CIE offset */
+#if defined __PIC__ && defined HAVE_AS_X86_PCREL
+ .long .LFB3-. /* FDE initial location */
+#else
+ .long .LFB3
+#endif
+ .long .LFE3-.LFB3 /* FDE address range */
+#ifdef __PIC__
+ .byte 0x0 /* .uleb128 0x0; Augmentation size */
+#endif
+ /* DW_CFA_xxx CFI instructions go here.  */
+
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .long .LCFI4-.LFB3
+ .byte 0xe /* DW_CFA_def_cfa_offset CFA = r4 + 8 = 8(%esp) */
+ .byte 0x8 /* .uleb128 0x8 */
+ .byte 0x85 /* DW_CFA_offset, column 0x5 %ebp at CFA + 2 * -4 */
+ .byte 0x2 /* .uleb128 0x2 */
+
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .long .LCFI5-.LCFI4
+ .byte 0xd /* DW_CFA_def_cfa_register CFA = r5 = %ebp */
+ .byte 0x5 /* .uleb128 0x5 */
+
+ /* End of DW_CFA_xxx CFI instructions.  */
+ .align 4
+.LEFDE3:
+
+#if !FFI_NO_RAW_API
+
+.LSFDE4:
+ .long .LEFDE4-.LASFDE4 /* FDE Length */
+.LASFDE4:
+ .long .LASFDE4-.Lframe1 /* FDE CIE offset */
+#if defined __PIC__ && defined HAVE_AS_X86_PCREL
+ .long .LFB4-. /* FDE initial location */
+#else
+ .long .LFB4
+#endif
+ .long .LFE4-.LFB4 /* FDE address range */
+#ifdef __PIC__
+ .byte 0x0 /* .uleb128 0x0; Augmentation size */
+#endif
+ /* DW_CFA_xxx CFI instructions go here.  */
+
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .long .LCFI6-.LFB4
+ .byte 0xe /* DW_CFA_def_cfa_offset CFA = r4 + 8 = 8(%esp) */
+ .byte 0x8 /* .uleb128 0x8 */
+ .byte 0x85 /* DW_CFA_offset, column 0x5 %ebp at CFA + 2 * -4 */
+ .byte 0x2 /* .uleb128 0x2 */
+
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .long .LCFI7-.LCFI6
+ .byte 0xd /* DW_CFA_def_cfa_register CFA = r5 = %ebp */
+ .byte 0x5 /* .uleb128 0x5 */
+
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .long .LCFI8-.LCFI7
+ .byte 0x86 /* DW_CFA_offset, column 0x6 %esi at CFA + 3 * -4 */
+ .byte 0x3 /* .uleb128 0x3 */
+
+ /* End of DW_CFA_xxx CFI instructions.  */
+ .align 4
+.LEFDE4:
+
+#endif /* !FFI_NO_RAW_API */

Re: libffi merge

by Anthony Green :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andrew Haley wrote:

> Andrew Haley wrote:
>  
>> libffi upstream and gcc libffi are out of sync.
>>
>> I'm doing a two-way merge.  Please don't commit patches to either repo for
>> the next few days.
>>    
>
> Here is the first tranche of changes, being the merge from gcc to libffi.
>
> Andrew.
>  
Thanks Andrew.  This set of changes were already in libffi...

2008-08-25  Andreas Tobler  <a.tobler@...>

       * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
       FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
       Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
       Adjust copyright notice.
       * src/powerpc/ffi.c: Add two new flags to indicate if we have one
       register or two register to use for FFI_SYSV structs.
       (ffi_prep_cif_machdep): Pass the right register flag introduced above.
       (ffi_closure_helper_SYSV): Fix the return type for
       FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
       Adjust copyright notice.

2008-07-16  Kaz Kojima  <kkojima@...>

       * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
       int.

2008-03-26  Kaz Kojima  <kkojima@...>

       * src/sh/sysv.S: Add .note.GNU-stack on Linux.
       * src/sh64/sysv.S: Likewise.

2008-02-12  Bjoern Koenig  <bkoenig@...>
           Andreas Tobler  <a.tobler@...>

       * configure.ac: Add amd64-*-freebsd* target.
       * configure: Regenerate.


The most difficult part of the merge is the configury, which is why I
have been selectively cross merging for the past while.

AG


Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Anthony Green wrote:

> Andrew Haley wrote:
>> Andrew Haley wrote:
>>  
>>> libffi upstream and gcc libffi are out of sync.
>>>
>>> I'm doing a two-way merge.  Please don't commit patches to either
>>> repo for
>>> the next few days.
>>>    
>>
>> Here is the first tranche of changes, being the merge from gcc to libffi.

> Thanks Andrew.  This set of changes were already in libffi...

Mostly, but the ChangeLog entries were missing.

Andrew.

Re: libffi merge

by Anthony Green-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andrew Haley wrote:

> Anthony Green wrote:
>  
>> Andrew Haley wrote:
>>    
>>> Andrew Haley wrote:
>>>  
>>>      
>>>> libffi upstream and gcc libffi are out of sync.
>>>>
>>>> I'm doing a two-way merge.  Please don't commit patches to either
>>>> repo for
>>>> the next few days.
>>>>    
>>>>        
>>> Here is the first tranche of changes, being the merge from gcc to libffi.
>>>      
>
>  
>> Thanks Andrew.  This set of changes were already in libffi...
>>    
>
> Mostly, but the ChangeLog entries were missing.
>  
They were in ChangeLog.libffi because they were added manually.   I will
delete them from ChangeLog.libffi once you've completed the two way merge.

Thanks,

AG



> Andrew.
>  


Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Anthony Green wrote:

> Andrew Haley wrote:
>> Anthony Green wrote:
>>  
>>> Andrew Haley wrote:
>>>    
>>>> Andrew Haley wrote:
>>>>  
>>>>      
>>>>> libffi upstream and gcc libffi are out of sync.
>>>>>
>>>>> I'm doing a two-way merge.  Please don't commit patches to either
>>>>> repo for
>>>>> the next few days.
>>>>>            
>>>> Here is the first tranche of changes, being the merge from gcc to
>>>> libffi.
>>>>      
>>
>>  
>>> Thanks Andrew.  This set of changes were already in libffi...
>>>    
>>
>> Mostly, but the ChangeLog entries were missing.

libffi was missing one hunk of AOliva's big change.

Andrew.


Index: src/sh64/ffi.c
===================================================================
RCS file: /cvs/libffi/libffi/src/sh64/ffi.c,v
retrieving revision 1.5
diff -u -r1.5 ffi.c
--- src/sh64/ffi.c      3 Jun 2009 17:42:56 -0000       1.5
+++ src/sh64/ffi.c      4 Jun 2009 10:32:42 -0000
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 2003, 2004, 2006 Kaz Kojima
+   ffi.c - Copyright (c) 2003, 2004, 2006, 2007 Kaz Kojima
            Copyright (c) 2008 Anthony Green

    SuperH SHmedia Foreign Function Interface
@@ -300,10 +300,11 @@
 extern void __ic_invalidate (void *line);

 ffi_status
-ffi_prep_closure (ffi_closure *closure,
-                 ffi_cif *cif,
-                 void (*fun)(ffi_cif*, void*, void**, void*),
-                 void *user_data)
+ffi_prep_closure_loc (ffi_closure *closure,
+                     ffi_cif *cif,
+                     void (*fun)(ffi_cif*, void*, void**, void*),
+                     void *user_data,
+                     void *codeloc)
 {
   unsigned int *tramp;

@@ -327,8 +328,8 @@
   tramp[2] = 0xcc000010 | (((UINT32) ffi_closure_SYSV) >> 16) << 10;
   tramp[3] = 0xc8000010 | (((UINT32) ffi_closure_SYSV) & 0xffff) << 10;
   tramp[4] = 0x6bf10600;
-  tramp[5] = 0xcc000010 | (((UINT32) closure) >> 16) << 10;
-  tramp[6] = 0xc8000010 | (((UINT32) closure) & 0xffff) << 10;
+  tramp[5] = 0xcc000010 | (((UINT32) codeloc) >> 16) << 10;
+  tramp[6] = 0xc8000010 | (((UINT32) codeloc) & 0xffff) << 10;
   tramp[7] = 0x4401fff0;

   closure->cif = cif;
@@ -336,7 +337,8 @@
   closure->user_data = user_data;

   /* Flush the icache.  */
-  asm volatile ("ocbwb %0,0; synco; icbi %0,0; synci" : : "r" (tramp));
+  asm volatile ("ocbwb %0,0; synco; icbi %1,0; synci" : : "r" (tramp),
+               "r"(codeloc));

   return FFI_OK;
 }

Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andrew Haley wrote:

> Anthony Green wrote:
>> Andrew Haley wrote:
>>> Anthony Green wrote:
>>>  
>>>> Andrew Haley wrote:
>>>>    
>>>>> Andrew Haley wrote:
>>>>>  
>>>>>      
>>>>>> libffi upstream and gcc libffi are out of sync.
>>>>>>
>>>>>> I'm doing a two-way merge.  Please don't commit patches to either
>>>>>> repo for
>>>>>> the next few days.

There's a big cleanup in gcc but not libffi that makes merging very hard:
http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00724.html

I'm going to have to apply this to libffi to get any further with the
merge.

Andrew.

Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andrew Haley wrote:

> Andrew Haley wrote:
>> Anthony Green wrote:
>>> Andrew Haley wrote:
>>>> Anthony Green wrote:
>>>>  
>>>>> Andrew Haley wrote:
>>>>>    
>>>>>> Andrew Haley wrote:
>>>>>>  
>>>>>>      
>>>>>>> libffi upstream and gcc libffi are out of sync.
>>>>>>>
>>>>>>> I'm doing a two-way merge.  Please don't commit patches to either
>>>>>>> repo for
>>>>>>> the next few days.
>
> There's a big cleanup in gcc but not libffi that makes merging very hard:
> http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00724.html
>
> I'm going to have to apply this to libffi to get any further with the
> merge.

A correction: a small part of it is not in libffi.  A big chunk of the
formatting diffs are now due to this change:

2008-02-14  Anthony Green  <green@...>

        * configure.ac: Bump version to 2.99.7.
        * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
        * include/ffi.h.in LICENSE src/debug.c src/closures.c
          src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
          src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
          src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
          src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
          src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
          src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
          src/x86/unix64.S src/x86/win32.S src/x86/ffitarget.h
          src/x86/ffi64.c src/x86/darwin.S src/ia64/ffi.c
          src/ia64/ffitarget.h src/ia64/ia64_flags.h src/ia64/unix.S
          src/sparc/ffi.c src/sparc/v9.S src/sparc/ffitarget.h
          src/sparc/v8.S src/alpha/ffi.c src/alpha/ffitarget.h
          src/alpha/osf.S src/sh64/ffi.c src/sh64/sysv.S
          src/sh64/ffitarget.h src/mips/ffi.c src/mips/ffitarget.h
          src/mips/n32.S src/mips/o32.S src/arm/ffi.c src/arm/sysv.S
          src/arm/ffitarget.h src/prep_cif.c: Update license text.

This change isn't in gcc's libffi, but I don't know why.  Anthony?

Andrew.


Re: libffi merge

by Anthony Green :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andrew Haley wrote:

> Andrew Haley wrote:
>  
>> Andrew Haley wrote:
>>    
>>> Anthony Green wrote:
>>>      
>>>> Andrew Haley wrote:
>>>>        
>>>>> Anthony Green wrote:
>>>>>  
>>>>>          
>>>>>> Andrew Haley wrote:
>>>>>>    
>>>>>>            
>>>>>>> Andrew Haley wrote:
>>>>>>>  
>>>>>>>      
>>>>>>>              
>>>>>>>> libffi upstream and gcc libffi are out of sync.
>>>>>>>>
>>>>>>>> I'm doing a two-way merge.  Please don't commit patches to either
>>>>>>>> repo for
>>>>>>>> the next few days.
>>>>>>>>                
>> There's a big cleanup in gcc but not libffi that makes merging very hard:
>> http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00724.html
>>
>> I'm going to have to apply this to libffi to get any further with the
>> merge.
>>    
>
> A correction: a small part of it is not in libffi.  A big chunk of the
> formatting diffs are now due to this change:
>
> 2008-02-14  Anthony Green  <green@...>
>
>         * configure.ac: Bump version to 2.99.7.
>         * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
>         * include/ffi.h.in LICENSE src/debug.c src/closures.c
>           src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
>           src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
>           src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
>           src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
>           src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
>           src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
>           src/x86/unix64.S src/x86/win32.S src/x86/ffitarget.h
>           src/x86/ffi64.c src/x86/darwin.S src/ia64/ffi.c
>           src/ia64/ffitarget.h src/ia64/ia64_flags.h src/ia64/unix.S
>           src/sparc/ffi.c src/sparc/v9.S src/sparc/ffitarget.h
>           src/sparc/v8.S src/alpha/ffi.c src/alpha/ffitarget.h
>           src/alpha/osf.S src/sh64/ffi.c src/sh64/sysv.S
>           src/sh64/ffitarget.h src/mips/ffi.c src/mips/ffitarget.h
>           src/mips/n32.S src/mips/o32.S src/arm/ffi.c src/arm/sysv.S
>           src/arm/ffitarget.h src/prep_cif.c: Update license text.
>
> This change isn't in gcc's libffi, but I don't know why.  Anthony?
>
> Andrew.
>
>  
No particular reason.   I haven't done a libffi to gcc merge since
cleaning this up.  Do you want me to do this patch now, or is it easier
for you to bring it over?

AG






Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Anthony Green wrote:

> Andrew Haley wrote:
>> A big chunk of the
>> formatting diffs are now due to this change:
>>
>> 2008-02-14  Anthony Green  <green@...>
>>
>>         * configure.ac: Bump version to 2.99.7.
>>         * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
>>         * include/ffi.h.in LICENSE src/debug.c src/closures.c
>>           src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
>>           src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
>>           src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
>>           src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
>>           src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
>>           src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
>>           src/x86/unix64.S src/x86/win32.S src/x86/ffitarget.h
>>           src/x86/ffi64.c src/x86/darwin.S src/ia64/ffi.c
>>           src/ia64/ffitarget.h src/ia64/ia64_flags.h src/ia64/unix.S
>>           src/sparc/ffi.c src/sparc/v9.S src/sparc/ffitarget.h
>>           src/sparc/v8.S src/alpha/ffi.c src/alpha/ffitarget.h
>>           src/alpha/osf.S src/sh64/ffi.c src/sh64/sysv.S
>>           src/sh64/ffitarget.h src/mips/ffi.c src/mips/ffitarget.h
>>           src/mips/n32.S src/mips/o32.S src/arm/ffi.c src/arm/sysv.S
>>           src/arm/ffitarget.h src/prep_cif.c: Update license text.
>>
>> This change isn't in gcc's libffi, but I don't know why.  Anthony?

> No particular reason.   I haven't done a libffi to gcc merge since
> cleaning this up.  Do you want me to do this patch now, or is it easier
> for you to bring it over?

Let me do it, I was just a bit baffled.

Andrew.

Re: libffi merge

by Dave Korn-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andrew Haley wrote:
> Anthony Green wrote:
>> Andrew Haley wrote:
>>> A big chunk of the
>>> formatting diffs are now due to this change:

>>>         * include/ffi.h.in LICENSE src/debug.c src/closures.c
>>>           src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
>>>           src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
>>>           src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
>>>           src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
>>>           src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
>>>           src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
>>>           src/x86/unix64.S src/x86/win32.S
                               ^^^^^^^^^^^^^^^

>> No particular reason.   I haven't done a libffi to gcc merge since
>> cleaning this up.  Do you want me to do this patch now, or is it easier
>> for you to bring it over?
>
> Let me do it, I was just a bit baffled.

  Keep an eye out for that one; last time I checked, the license header in the
libffi version was a bit mangled, you don't want to inadvertently bring that
across.

    cheers,
      DaveK

Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dave Korn wrote:

> Andrew Haley wrote:
>> Anthony Green wrote:
>>> Andrew Haley wrote:
>>>> A big chunk of the
>>>> formatting diffs are now due to this change:
>
>>>>         * include/ffi.h.in LICENSE src/debug.c src/closures.c
>>>>           src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
>>>>           src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
>>>>           src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
>>>>           src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
>>>>           src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
>>>>           src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
>>>>           src/x86/unix64.S src/x86/win32.S
>                                ^^^^^^^^^^^^^^^
>
>>> No particular reason.   I haven't done a libffi to gcc merge since
>>> cleaning this up.  Do you want me to do this patch now, or is it easier
>>> for you to bring it over?
>> Let me do it, I was just a bit baffled.
>
>   Keep an eye out for that one; last time I checked, the license header in the
> libffi version was a bit mangled, you don't want to inadvertently bring that
> across.

2009-06-04  Andrew Haley  <aph@...>

        * src/x86/darwin.S: Fix licence formatting.
        src/x86/win32.S: Likewise.
        src/sh64/sysv.S: Likewise.
        src/sh/sysv.S: Likewise.

Index: src/sh/sysv.S
===================================================================
RCS file: /cvs/libffi/libffi/src/sh/sysv.S,v
retrieving revision 1.5
diff -c -2 -p -r1.5 sysv.S
*** src/sh/sysv.S 17 Jul 2008 13:13:52 -0000 1.5
--- src/sh/sysv.S 4 Jun 2009 14:42:04 -0000
***************
*** 15,26 ****
     in all copies or substantial portions of the Software.

!    THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
!    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
!    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
!    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
! ANY CLAIM, DAMAGES OR
!    OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
!    ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
!    OTHER DEALINGS IN THE SOFTWARE.
     ----------------------------------------------------------------------- */

--- 15,26 ----
     in all copies or substantial portions of the Software.

!    THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
!    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
!    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
!    NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
!    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
!    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
!    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
!    DEALINGS IN THE SOFTWARE.
     ----------------------------------------------------------------------- */

Index: src/sh64/sysv.S
===================================================================
RCS file: /cvs/libffi/libffi/src/sh64/sysv.S,v
retrieving revision 1.5
diff -c -2 -p -r1.5 sysv.S
*** src/sh64/sysv.S 3 Jun 2009 17:42:56 -0000 1.5
--- src/sh64/sysv.S 4 Jun 2009 14:42:04 -0000
***************
*** 15,26 ****
     in all copies or substantial portions of the Software.

!    THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
!    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
!    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
!    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
! ANY CLAIM, DAMAGES OR
!    OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
!    ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
!    OTHER DEALINGS IN THE SOFTWARE.
     ----------------------------------------------------------------------- */

--- 15,27 ----
     in all copies or substantial portions of the Software.

!
!    THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
!    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
!    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
!    NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
!    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
!    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
!    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
!    DEALINGS IN THE SOFTWARE.
     ----------------------------------------------------------------------- */

Index: src/x86/darwin.S
===================================================================
RCS file: /cvs/libffi/libffi/src/x86/darwin.S,v
retrieving revision 1.3
diff -c -2 -p -r1.3 darwin.S
*** src/x86/darwin.S 15 Feb 2008 01:24:06 -0000 1.3
--- src/x86/darwin.S 4 Jun 2009 14:42:04 -0000
***************
*** 16,28 ****
     in all copies or substantial portions of the Software.

!    THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
!    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
!    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
!    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
! ANY CLAIM, DAMAGES OR
!    OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
!    ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
!    OTHER DEALINGS IN THE SOFTWARE.
!    ----------------------------------------------------------------------- */

  #ifndef __x86_64__
--- 16,29 ----
     in all copies or substantial portions of the Software.

!    THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
!    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
!    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
!    NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
!    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
!    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
!    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
!    DEALINGS IN THE SOFTWARE.
!    -----------------------------------------------------------------------
!    */

  #ifndef __x86_64__
Index: src/x86/win32.S
===================================================================
RCS file: /cvs/libffi/libffi/src/x86/win32.S,v
retrieving revision 1.6
diff -c -2 -p -r1.6 win32.S
*** src/x86/win32.S 3 Jun 2009 17:42:56 -0000 1.6
--- src/x86/win32.S 4 Jun 2009 14:42:04 -0000
***************
*** 18,30 ****
     in all copies or substantial portions of the Software.

!    THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
!    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
!    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
!    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
! ANY CLAIM, DAMAGES OR
!    OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
!    ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
!    OTHER DEALINGS IN THE SOFTWARE.
!    ----------------------------------------------------------------------- */

  #define LIBFFI_ASM
--- 18,31 ----
     in all copies or substantial portions of the Software.

!    THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
!    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
!    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
!    NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
!    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
!    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
!    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
!    DEALINGS IN THE SOFTWARE.
!    -----------------------------------------------------------------------
!    */

  #define LIBFFI_ASM

Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dave Korn wrote:

> Andrew Haley wrote:
>> Anthony Green wrote:
>>> Andrew Haley wrote:
>>>> A big chunk of the
>>>> formatting diffs are now due to this change:
>
>>>>         * include/ffi.h.in LICENSE src/debug.c src/closures.c
>>>>           src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
>>>>           src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
>>>>           src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
>>>>           src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
>>>>           src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
>>>>           src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
>>>>           src/x86/unix64.S src/x86/win32.S
>                                ^^^^^^^^^^^^^^^
>
>>> No particular reason.   I haven't done a libffi to gcc merge since
>>> cleaning this up.  Do you want me to do this patch now, or is it easier
>>> for you to bring it over?
>> Let me do it, I was just a bit baffled.
>
>   Keep an eye out for that one; last time I checked, the license header in the
> libffi version was a bit mangled, you don't want to inadvertently bring that
> across.

OK, I fixed the libffi end, and this is the fix for gcc.

Andrew.

Index: include/ffi.h.in
===================================================================
--- include/ffi.h.in (revision 148089) +++ include/ffi.h.in (working
copy) @@ -12,13 +12,14 @@ The above copyright notice and this
permission notice shall be included in all copies or substantial
portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/arm/ffitarget.h
===================================================================
--- src/arm/ffitarget.h (revision 148089)
+++ src/arm/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/arm/ffi.c
===================================================================
--- src/arm/ffi.c (revision 148089)
+++ src/arm/ffi.c (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/arm/sysv.S
===================================================================
--- src/arm/sysv.S (revision 148089)
+++ src/arm/sysv.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/powerpc/ffitarget.h
===================================================================
--- src/powerpc/ffitarget.h (revision 148089)
+++ src/powerpc/ffitarget.h (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/powerpc/sysv.S
===================================================================
--- src/powerpc/sysv.S (revision 148089)
+++ src/powerpc/sysv.S (working copy)
@@ -15,13 +15,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/powerpc/linux64.S
===================================================================
--- src/powerpc/linux64.S (revision 148089)
+++ src/powerpc/linux64.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/closures.c
===================================================================
--- src/closures.c (revision 148089)
+++ src/closures.c (working copy)
@@ -15,13 +15,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #if defined __linux__ && !defined _GNU_SOURCE
Index: src/sh64/ffitarget.h
===================================================================
--- src/sh64/ffitarget.h (revision 148089)
+++ src/sh64/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/sh64/ffi.c
===================================================================
--- src/sh64/ffi.c (revision 148089)
+++ src/sh64/ffi.c (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/sh64/sysv.S
===================================================================
--- src/sh64/sysv.S (revision 148089)
+++ src/sh64/sysv.S (working copy)
@@ -14,13 +14,15 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/types.c
===================================================================
--- src/types.c (revision 148089)
+++ src/types.c (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 /* Hide the basic type definitions from the header file, so that we
Index: src/x86/ffi64.c
===================================================================
--- src/x86/ffi64.c (revision 148089)
+++ src/x86/ffi64.c (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/x86/ffitarget.h
===================================================================
--- src/x86/ffitarget.h (revision 148089)
+++ src/x86/ffitarget.h (working copy)
@@ -15,13 +15,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/x86/win32.S
===================================================================
--- src/x86/win32.S (revision 148089)
+++ src/x86/win32.S (working copy)
@@ -17,14 +17,16 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
-   ----------------------------------------------------------------------- */
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
+   -----------------------------------------------------------------------
+   */

 #define LIBFFI_ASM
 #include <fficonfig.h>
Index: src/x86/darwin.S
===================================================================
--- src/x86/darwin.S (revision 148089)
+++ src/x86/darwin.S (working copy)
@@ -15,14 +15,16 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
-   ----------------------------------------------------------------------- */
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
+   -----------------------------------------------------------------------
+   */

 #ifndef __x86_64__

Index: src/x86/ffi.c
===================================================================
--- src/x86/ffi.c (revision 148089)
+++ src/x86/ffi.c (working copy)
@@ -18,13 +18,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #ifndef __x86_64__
Index: src/x86/sysv.S
===================================================================
--- src/x86/sysv.S (revision 148089)
+++ src/x86/sysv.S (working copy)
@@ -15,13 +15,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #ifndef __x86_64__
Index: src/x86/unix64.S
===================================================================
--- src/x86/unix64.S (revision 148089)
+++ src/x86/unix64.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #ifdef __x86_64__
Index: src/alpha/ffitarget.h
===================================================================
--- src/alpha/ffitarget.h (revision 148089)
+++ src/alpha/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/alpha/ffi.c
===================================================================
--- src/alpha/ffi.c (revision 148089)
+++ src/alpha/ffi.c (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/alpha/osf.S
===================================================================
--- src/alpha/osf.S (revision 148089)
+++ src/alpha/osf.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/m68k/ffitarget.h
===================================================================
--- src/m68k/ffitarget.h (revision 148089)
+++ src/m68k/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/frv/ffitarget.h
===================================================================
--- src/frv/ffitarget.h (revision 148089)
+++ src/frv/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/frv/ffi.c
===================================================================
--- src/frv/ffi.c (revision 148089)
+++ src/frv/ffi.c (working copy)
@@ -15,13 +15,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/s390/ffitarget.h
===================================================================
--- src/s390/ffitarget.h (revision 148089)
+++ src/s390/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/s390/sysv.S
===================================================================
--- src/s390/sysv.S (revision 148089)
+++ src/s390/sysv.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/cris/ffitarget.h
===================================================================
--- src/cris/ffitarget.h (revision 148089)
+++ src/cris/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/pa/linux.S
===================================================================
--- src/pa/linux.S (revision 148089)
+++ src/pa/linux.S (working copy)
@@ -17,7 +17,7 @@
    THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+   IN NO EVENT SHALL RENESAS TECHNOLOGY BE LIABLE FOR ANY CLAIM, DAMAGES OR
    OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    OTHER DEALINGS IN THE SOFTWARE.
Index: src/pa/ffitarget.h
===================================================================
--- src/pa/ffitarget.h (revision 148089)
+++ src/pa/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/pa/ffi.c
===================================================================
--- src/pa/ffi.c (revision 148089)
+++ src/pa/ffi.c (working copy)
@@ -15,13 +15,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/raw_api.c
===================================================================
--- src/raw_api.c (revision 148089)
+++ src/raw_api.c (working copy)
@@ -16,13 +16,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 /* This file defines generic functions for use with the raw api. */
Index: src/ia64/ffitarget.h
===================================================================
--- src/ia64/ffitarget.h (revision 148089)
+++ src/ia64/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/ia64/unix.S
===================================================================
--- src/ia64/unix.S (revision 148089)
+++ src/ia64/unix.S (working copy)
@@ -19,13 +19,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/ia64/ffi.c
===================================================================
--- src/ia64/ffi.c (revision 148089)
+++ src/ia64/ffi.c (working copy)
@@ -15,13 +15,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/ia64/ia64_flags.h
===================================================================
--- src/ia64/ia64_flags.h (revision 148089)
+++ src/ia64/ia64_flags.h (working copy)
@@ -16,13 +16,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 /* "Type" codes used between assembly and C.  When used as a part of
Index: src/java_raw_api.c
===================================================================
--- src/java_raw_api.c (revision 148089)
+++ src/java_raw_api.c (working copy)
@@ -19,13 +19,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 /* This defines a Java- and 64-bit specific variant of the raw API. */
Index: src/debug.c
===================================================================
--- src/debug.c (revision 148089)
+++ src/debug.c (working copy)
@@ -12,13 +12,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/sparc/v9.S
===================================================================
--- src/sparc/v9.S (revision 148089)
+++ src/sparc/v9.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/sparc/ffitarget.h
===================================================================
--- src/sparc/ffitarget.h (revision 148089)
+++ src/sparc/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/sparc/ffi.c
===================================================================
--- src/sparc/ffi.c (revision 148089)
+++ src/sparc/ffi.c (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/sparc/v8.S
===================================================================
--- src/sparc/v8.S (revision 148089)
+++ src/sparc/v8.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/mips/ffitarget.h
===================================================================
--- src/mips/ffitarget.h (revision 148089)
+++ src/mips/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/mips/n32.S
===================================================================
--- src/mips/n32.S (revision 148089)
+++ src/mips/n32.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/mips/o32.S
===================================================================
--- src/mips/o32.S (revision 148089)
+++ src/mips/o32.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/mips/ffi.c
===================================================================
--- src/mips/ffi.c (revision 148089)
+++ src/mips/ffi.c (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/prep_cif.c
===================================================================
--- src/prep_cif.c (revision 148089)
+++ src/prep_cif.c (working copy)
@@ -12,13 +12,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/sh/ffitarget.h
===================================================================
--- src/sh/ffitarget.h (revision 148089)
+++ src/sh/ffitarget.h (working copy)
@@ -13,13 +13,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.

    ----------------------------------------------------------------------- */

Index: src/sh/ffi.c
===================================================================
--- src/sh/ffi.c (revision 148089)
+++ src/sh/ffi.c (working copy)
@@ -15,13 +15,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #include <ffi.h>
Index: src/sh/sysv.S
===================================================================
--- src/sh/sysv.S (revision 148089)
+++ src/sh/sysv.S (working copy)
@@ -14,13 +14,14 @@
    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM

Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Merge from libffi -> gcc.

Mostly trivial changes to declarations and licence text, but also includes
the change that uses __builtin___clear_cache on MIPS.

Andrew.



2009-06-04  Andrew Haley  <aph@...>

        * src/powerpc/ppc_closure.S: Insert licence header.
        * src/powerpc/linux64_closure.S: Likewise.
        * src/m68k/sysv.S: Likewise.

        * src/sh64/ffi.c: Change void (*)() to void (*)(void).
        * src/powerpc/ffi.c: Likewise.
        * src/powerpc/ffi_darwin.c: Likewise.
        * src/m32r/ffi.c: Likewise.
        * src/sh64/ffi.c: Likewise.
        * src/x86/ffi64.c: Likewise.
        * src/alpha/ffi.c: Likewise.
        * src/alpha/osf.S: Likewise.
        * src/frv/ffi.c: Likewise.
        * src/s390/ffi.c: Likewise.
        * src/pa/ffi.c: Likewise.
        * src/pa/hpux32.S: Likewise.
        * src/ia64/unix.S: Likewise.
        * src/ia64/ffi.c: Likewise.
        * src/sparc/ffi.c: Likewise.
        * src/mips/ffi.c: Likewise.
        * src/sh/ffi.c: Likewise.

2008-02-15  David Daney  <ddaney@...>

        * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
        Define (conditionally), and use it to include cachectl.h.
        (ffi_prep_closure_loc): Fix cache flushing.
        * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.

Index: src/arm/ffi.c
===================================================================
--- src/arm/ffi.c (revision 148171)
+++ src/arm/ffi.c (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 1998  Red Hat, Inc.
+   ffi.c - Copyright (c) 1998, 2008  Red Hat, Inc.

    ARM Foreign Function Interface

@@ -149,9 +149,9 @@
 }

 extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *,
-  unsigned, unsigned, unsigned *, void (*fn)());
+  unsigned, unsigned, unsigned *, void (*fn)(void));

-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   extended_cif ecif;

Index: src/arm/sysv.S
===================================================================
--- src/arm/sysv.S (revision 148171)
+++ src/arm/sysv.S (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   sysv.S - Copyright (c) 1998 Red Hat, Inc.
+   sysv.S - Copyright (c) 1998, 2008 Red Hat, Inc.

    ARM Foreign Function Interface

Index: src/powerpc/ppc_closure.S
===================================================================
--- src/powerpc/ppc_closure.S (revision 148170)
+++ src/powerpc/ppc_closure.S (working copy)
@@ -1,3 +1,29 @@
+/* -----------------------------------------------------------------------
+   sysv.h - Copyright (c) 2003 Jakub Jelinek <jakub@...>
+    Copyright (c) 2008 Red Hat, Inc.
+
+   PowerPC Assembly glue.
+
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   ``Software''), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+
+   The above copyright notice and this permission notice shall be included
+   in all copies or substantial portions of the Software.
+
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
+   ----------------------------------------------------------------------- */
 #define LIBFFI_ASM
 #include <fficonfig.h>
 #include <ffi.h>
Index: src/powerpc/ffi.c
===================================================================
--- src/powerpc/ffi.c (revision 148170)
+++ src/powerpc/ffi.c (working copy)
@@ -1,6 +1,7 @@
 /* -----------------------------------------------------------------------
    ffi.c - Copyright (c) 1998 Geoffrey Keating
    Copyright (C) 2007, 2008 Free Software Foundation, Inc
+   Copyright (C) 2008 Red Hat, Inc

    PowerPC Foreign Function Interface

@@ -875,13 +876,13 @@
 }

 extern void ffi_call_SYSV(extended_cif *, unsigned, unsigned, unsigned *,
-  void (*fn)());
+  void (*fn)(void));
 extern void FFI_HIDDEN ffi_call_LINUX64(extended_cif *, unsigned long,
  unsigned long, unsigned long *,
- void (*fn)());
+ void (*fn)(void));

 void
-ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   extended_cif ecif;

Index: src/powerpc/linux64_closure.S
===================================================================
--- src/powerpc/linux64_closure.S (revision 148170)
+++ src/powerpc/linux64_closure.S (working copy)
@@ -1,3 +1,29 @@
+/* -----------------------------------------------------------------------
+   sysv.h - Copyright (c) 2003 Jakub Jelinek <jakub@...>
+    Copyright (c) 2008 Red Hat, Inc.
+
+   PowerPC64 Assembly glue.
+
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   ``Software''), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+
+   The above copyright notice and this permission notice shall be included
+   in all copies or substantial portions of the Software.
+
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
+   ----------------------------------------------------------------------- */
 #define LIBFFI_ASM
 #include <fficonfig.h>
 #include <ffi.h>
@@ -204,3 +230,7 @@
  .align 3
 .LEFDE1:
 #endif
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
Index: src/powerpc/ffi_darwin.c
===================================================================
--- src/powerpc/ffi_darwin.c (revision 148170)
+++ src/powerpc/ffi_darwin.c (working copy)
@@ -425,11 +425,11 @@
 }

 extern void ffi_call_AIX(extended_cif *, unsigned, unsigned, unsigned *,
- void (*fn)(), void (*fn2)());
+ void (*fn)(void), void (*fn2)(void));
 extern void ffi_call_DARWIN(extended_cif *, unsigned, unsigned, unsigned *,
-    void (*fn)(), void (*fn2)());
+    void (*fn)(void), void (*fn2)(void));

-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   extended_cif ecif;

Index: src/powerpc/linux64.S
===================================================================
--- src/powerpc/linux64.S (revision 148171)
+++ src/powerpc/linux64.S (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    sysv.h - Copyright (c) 2003 Jakub Jelinek <jakub@...>
+    Copyright (c) 2008 Red Hat, Inc.

    PowerPC64 Assembly glue.

@@ -180,3 +181,7 @@
  .align 3
 .LEFDE1:
 #endif
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
Index: src/m32r/ffi.c
===================================================================
--- src/m32r/ffi.c (revision 148170)
+++ src/m32r/ffi.c (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    ffi.c - Copyright (c) 2004  Renesas Technology
+           Copyright (c) 2008  Red Hat, Inc.

    M32R Foreign Function Interface

@@ -172,9 +173,9 @@
 }

 extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *,
-  unsigned, unsigned, unsigned *, void (*fn)());
+  unsigned, unsigned, unsigned *, void (*fn)(void));

-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   extended_cif ecif;

Index: src/sh64/ffi.c
===================================================================
--- src/sh64/ffi.c (revision 148171)
+++ src/sh64/ffi.c (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    ffi.c - Copyright (c) 2003, 2004, 2006, 2007 Kaz Kojima
+           Copyright (c) 2008 Anthony Green

    SuperH SHmedia Foreign Function Interface

@@ -237,11 +238,20 @@
   return FFI_OK;
 }

-extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *,
-  unsigned, unsigned, long long, unsigned *,
-  void (*fn)());
-
-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+/*@-declundef@*/
+/*@-exportheader@*/
+extern void ffi_call_SYSV(void (*)(char *, extended_cif *),
+  /*@out@*/ extended_cif *,
+  unsigned, unsigned, long long,
+  /*@out@*/ unsigned *,
+  void (*fn)(void));
+/*@=declundef@*/
+/*@=exportheader@*/
+
+void ffi_call(/*@dependent@*/ ffi_cif *cif,
+      void (*fn)(void),
+      /*@out@*/ void *rvalue,
+      /*@dependent@*/ void **avalue)
 {
   extended_cif ecif;
   UINT64 trvalue;
Index: src/x86/darwin64.S
===================================================================
--- src/x86/darwin64.S (revision 148170)
+++ src/x86/darwin64.S (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    darwin64.S - Copyright (c) 2006 Free Software Foundation, Inc.
+        Copyright (c) 2008 Red Hat, Inc.
    derived from unix64.S

    x86-64 Foreign Function Interface for Darwin.
@@ -33,7 +34,7 @@
 .text

 /* ffi_call_unix64 (void *args, unsigned long bytes, unsigned flags,
-    void *raddr, void (*fnaddr)());
+    void *raddr, void (*fnaddr)(void));

    Bit o trickiness here -- ARGS+BYTES is the base of the stack frame
    for this function.  This has been allocated by ffi_call.  We also
Index: src/x86/ffi64.c
===================================================================
--- src/x86/ffi64.c (revision 148171)
+++ src/x86/ffi64.c (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    ffi.c - Copyright (c) 2002, 2007  Bo Thorsen <bo@...>
+           Copyright (c) 2008  Red Hat, Inc.

    x86-64 Foreign Function Interface

@@ -43,7 +44,7 @@
 };

 extern void ffi_call_unix64 (void *args, unsigned long bytes, unsigned flags,
-     void *raddr, void (*fnaddr)(), unsigned ssecount);
+     void *raddr, void (*fnaddr)(void), unsigned ssecount);

 /* All reference to register classes here is identical to the code in
    gcc/config/i386/i386.c. Do *not* change one without the other.  */
@@ -340,7 +341,7 @@
 }

 void
-ffi_call (ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+ffi_call (ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   enum x86_64_reg_class classes[MAX_CLASSES];
   char *stack, *argp;
Index: src/x86/sysv.S
===================================================================
--- src/x86/sysv.S (revision 148171)
+++ src/x86/sysv.S (working copy)
@@ -1,6 +1,5 @@
 /* -----------------------------------------------------------------------
-   sysv.S - Copyright (c) 1996, 1998, 2001, 2002, 2003, 2005, 2008
-   Red Hat, Inc.
+   sysv.S - Copyright (c) 1996, 1998, 2001-2003, 2005, 2008  Red Hat, Inc.

    X86 Foreign Function Interface

Index: src/x86/unix64.S
===================================================================
--- src/x86/unix64.S (revision 148171)
+++ src/x86/unix64.S (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
-   unix64.S - Copyright (c) 2002, 2008  Bo Thorsen <bo@...>
+   unix64.S - Copyright (c) 2002  Bo Thorsen <bo@...>
+      Copyright (c) 2008  Red Hat, Inc

    x86-64 Foreign Function Interface

@@ -32,7 +33,7 @@
 .text

 /* ffi_call_unix64 (void *args, unsigned long bytes, unsigned flags,
-            void *raddr, void (*fnaddr)());
+            void *raddr, void (*fnaddr)(void));

    Bit o trickiness here -- ARGS+BYTES is the base of the stack frame
    for this function.  This has been allocated by ffi_call.  We also
Index: src/alpha/ffi.c
===================================================================
--- src/alpha/ffi.c (revision 148171)
+++ src/alpha/ffi.c (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 1998, 2001, 2007 Red Hat, Inc.
+   ffi.c - Copyright (c) 1998, 2001, 2007, 2008  Red Hat, Inc.

    Alpha Foreign Function Interface

@@ -39,7 +39,7 @@
 # define FFI_TYPE_LONGDOUBLE 4
 #endif

-extern void ffi_call_osf(void *, unsigned long, unsigned, void *, void (*)())
+extern void ffi_call_osf(void *, unsigned long, unsigned, void *, void (*)(void))
   FFI_HIDDEN;
 extern void ffi_closure_osf(void) FFI_HIDDEN;

@@ -76,7 +76,7 @@


 void
-ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   unsigned long *stack, *argp;
   long i, avn;
Index: src/alpha/osf.S
===================================================================
--- src/alpha/osf.S (revision 148171)
+++ src/alpha/osf.S (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   osf.S - Copyright (c) 1998, 2001, 2007 Red Hat
+   osf.S - Copyright (c) 1998, 2001, 2007, 2008 Red Hat

    Alpha/OSF Foreign Function Interface

@@ -32,7 +32,7 @@
  .text

 /* ffi_call_osf (void *args, unsigned long bytes, unsigned flags,
- void *raddr, void (*fnaddr)());
+ void *raddr, void (*fnaddr)(void));

    Bit o trickiness here -- ARGS+BYTES is the base of the stack frame
    for this function.  This has been allocated by ffi_call.  We also
Index: src/m68k/sysv.S
===================================================================
--- src/m68k/sysv.S (revision 148170)
+++ src/m68k/sysv.S (working copy)
@@ -1,7 +1,28 @@
 /* -----------------------------------------------------------------------
-   sysv.S
+   sysv.S - Copyright (c) 1998 Andreas Schwab
+    Copyright (c) 2008 Red Hat, Inc.

    m68k Foreign Function Interface
+
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   ``Software''), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+
+   The above copyright notice and this permission notice shall be included
+   in all copies or substantial portions of the Software.
+
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+   DEALINGS IN THE SOFTWARE.
    ----------------------------------------------------------------------- */

 #define LIBFFI_ASM
Index: src/frv/ffi.c
===================================================================
--- src/frv/ffi.c (revision 148171)
+++ src/frv/ffi.c (working copy)
@@ -1,6 +1,7 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 2004  Anthony Green
+   ffi.c - Copyright (C) 2004  Anthony Green
    Copyright (C) 2007  Free Software Foundation, Inc.
+   Copyright (C) 2008  Red Hat, Inc.

    FR-V Foreign Function Interface

@@ -126,10 +127,10 @@
   extended_cif *,
   unsigned, unsigned,
   unsigned *,
-  void (*fn)());
+  void (*fn)(void));

 void ffi_call(ffi_cif *cif,
-      void (*fn)(),
+      void (*fn)(void),
       void *rvalue,
       void **avalue)
 {
Index: src/s390/ffi.c
===================================================================
--- src/s390/ffi.c (revision 148170)
+++ src/s390/ffi.c (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    ffi.c - Copyright (c) 2000, 2007 Software AG
+           Copyright (c) 2008 Red Hat, Inc

    S390 Foreign Function Interface

@@ -88,7 +89,7 @@
   void (*)(unsigned char *, extended_cif *),
   unsigned,
   void *,
-  void (*fn)());
+  void (*fn)(void));

 extern void ffi_closure_SYSV(void);

@@ -498,7 +499,7 @@

 void
 ffi_call(ffi_cif *cif,
- void (*fn)(),
+ void (*fn)(void),
  void *rvalue,
  void **avalue)
 {
Index: src/s390/sysv.S
===================================================================
--- src/s390/sysv.S (revision 148171)
+++ src/s390/sysv.S (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    sysv.S - Copyright (c) 2000 Software AG
+            Copyright (c) 2008 Red Hat, Inc.

    S390 Foreign Function Interface

Index: src/pa/linux.S
===================================================================
--- src/pa/linux.S (revision 148171)
+++ src/pa/linux.S (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    linux.S - (c) 2003-2004 Randolph Chung <tausq@...>
+     (c) 2008 Red Hat, Inc.

    HPPA Foreign Function Interface

@@ -36,7 +37,7 @@
        unsigned bytes,
        unsigned flags,
        unsigned *rvalue,
-       void (*fn)());
+       void (*fn)(void));
  */

  .export ffi_call_pa32,code
Index: src/pa/ffi.c
===================================================================
--- src/pa/ffi.c (revision 148171)
+++ src/pa/ffi.c (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    ffi.c - (c) 2003-2004 Randolph Chung <tausq@...>
+           (c) 2008 Red Hat, Inc.

    HPPA Foreign Function Interface
    HP-UX PA ABI support (c) 2006 Free Software Foundation, Inc.
@@ -368,9 +369,9 @@

 extern void ffi_call_pa32(void (*)(UINT32 *, extended_cif *, unsigned),
   extended_cif *, unsigned, unsigned, unsigned *,
-  void (*fn)());
+  void (*fn)(void));

-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   extended_cif ecif;

Index: src/pa/hpux32.S
===================================================================
--- src/pa/hpux32.S (revision 148170)
+++ src/pa/hpux32.S (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
    hpux32.S - Copyright (c) 2006 Free Software Foundation, Inc.
+                (c) 2008 Red Hat, Inc.
    based on src/pa/linux.S

    HP-UX PA Foreign Function Interface
@@ -40,7 +41,7 @@
        unsigned bytes,
        unsigned flags,
        unsigned *rvalue,
-       void (*fn)());
+       void (*fn)(void));
  */

  .export ffi_call_pa32,ENTRY,PRIV_LEV=3
Index: src/raw_api.c
===================================================================
--- src/raw_api.c (revision 148171)
+++ src/raw_api.c (working copy)
@@ -1,10 +1,8 @@
 /* -----------------------------------------------------------------------
-   raw_api.c - Copyright (c) 1999  Red Hat, Inc.
+   raw_api.c - Copyright (c) 1999, 2008  Red Hat, Inc.

    Author: Kresten Krab Thorup <krab@...>

-   $Id $
-
    Permission is hereby granted, free of charge, to any person obtaining
    a copy of this software and associated documentation files (the
    ``Software''), to deal in the Software without restriction, including
@@ -190,7 +188,7 @@
  * these following couple of functions will handle the translation forth
  * and back automatically. */

-void ffi_raw_call (ffi_cif *cif, void (*fn)(), void *rvalue, ffi_raw *raw)
+void ffi_raw_call (ffi_cif *cif, void (*fn)(void), void *rvalue, ffi_raw *raw)
 {
   void **avalue = (void**) alloca (cif->nargs * sizeof (void*));
   ffi_raw_to_ptrarray (cif, raw, avalue);
Index: src/ia64/unix.S
===================================================================
--- src/ia64/unix.S (revision 148171)
+++ src/ia64/unix.S (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   unix.S - Copyright (c) 1998 Red Hat, Inc.
+   unix.S - Copyright (c) 1998, 2008 Red Hat, Inc.
             Copyright (c) 2000 Hewlett Packard Company

    IA64/unix Foreign Function Interface
@@ -38,7 +38,7 @@
 .text

 /* int ffi_call_unix (struct ia64_args *stack, PTR64 rvalue,
-      void (*fn)(), int flags);
+      void (*fn)(void), int flags);
  */

         .align 16
@@ -554,3 +554,7 @@
  data8 @pcrel(.Lld_hfa_float) // FFI_IA64_TYPE_HFA_FLOAT
  data8 @pcrel(.Lld_hfa_double) // FFI_IA64_TYPE_HFA_DOUBLE
  data8 @pcrel(.Lld_hfa_ldouble) // FFI_IA64_TYPE_HFA_LDOUBLE
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
Index: src/ia64/ffi.c
===================================================================
--- src/ia64/ffi.c (revision 148171)
+++ src/ia64/ffi.c (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 1998, 2007 Red Hat, Inc.
+   ffi.c - Copyright (c) 1998, 2007, 2008 Red Hat, Inc.
    Copyright (c) 2000 Hewlett Packard Company

    IA64 Foreign Function Interface
@@ -270,10 +270,10 @@
   return FFI_OK;
 }

-extern int ffi_call_unix (struct ia64_args *, PTR64, void (*)(), UINT64);
+extern int ffi_call_unix (struct ia64_args *, PTR64, void (*)(void), UINT64);

 void
-ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   struct ia64_args *stack;
   long i, avn, gpcount, fpcount;
Index: src/java_raw_api.c
===================================================================
--- src/java_raw_api.c (revision 148171)
+++ src/java_raw_api.c (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   java_raw_api.c - Copyright (c) 1999, 2007  Red Hat, Inc.
+   java_raw_api.c - Copyright (c) 1999, 2007, 2008  Red Hat, Inc.

    Cloned from raw_api.c

@@ -295,7 +295,7 @@
  * these following couple of functions will handle the translation forth
  * and back automatically. */

-void ffi_java_raw_call (ffi_cif *cif, void (*fn)(), void *rvalue,
+void ffi_java_raw_call (ffi_cif *cif, void (*fn)(void), void *rvalue,
  ffi_java_raw *raw)
 {
   void **avalue = (void**) alloca (cif->nargs * sizeof (void*));
Index: src/sparc/v9.S
===================================================================
--- src/sparc/v9.S (revision 148171)
+++ src/sparc/v9.S (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   v9.S - Copyright (c) 2000, 2003, 2004 Red Hat, Inc.
+   v9.S - Copyright (c) 2000, 2003, 2004, 2008 Red Hat, Inc.

    SPARC 64-bit Foreign Function Interface

Index: src/sparc/ffi.c
===================================================================
--- src/sparc/ffi.c (revision 148171)
+++ src/sparc/ffi.c (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 1996, 2003, 2004, 2007 Red Hat, Inc.
+   ffi.c - Copyright (c) 1996, 2003, 2004, 2007, 2008 Red Hat, Inc.

    SPARC Foreign Function Interface

@@ -369,13 +369,13 @@

 #ifdef SPARC64
 extern int ffi_call_v9(void *, extended_cif *, unsigned,
-       unsigned, unsigned *, void (*fn)());
+       unsigned, unsigned *, void (*fn)(void));
 #else
 extern int ffi_call_v8(void *, extended_cif *, unsigned,
-       unsigned, unsigned *, void (*fn)());
+       unsigned, unsigned *, void (*fn)(void));
 #endif

-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   extended_cif ecif;
   void *rval = rvalue;
Index: src/sparc/v8.S
===================================================================
--- src/sparc/v8.S (revision 148171)
+++ src/sparc/v8.S (working copy)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   v8.S - Copyright (c) 1996, 1997, 2003, 2004 Red Hat, Inc.
+   v8.S - Copyright (c) 1996, 1997, 2003, 2004, 2008 Red Hat, Inc.

    SPARC Foreign Function Interface

Index: src/mips/ffitarget.h
===================================================================
--- src/mips/ffitarget.h (revision 148171)
+++ src/mips/ffitarget.h (working copy)
@@ -27,6 +27,19 @@
 #ifndef LIBFFI_TARGET_H
 #define LIBFFI_TARGET_H

+#ifdef linux
+#include <asm/sgidefs.h>
+#  ifndef _ABIN32
+#    define _ABIN32 _MIPS_SIM_NABI32
+#  endif
+#  ifndef _ABI64
+#    define _ABI64 _MIPS_SIM_ABI64
+#  endif
+#  ifndef _ABIO32
+#    define _ABIO32 _MIPS_SIM_ABI32
+#  endif
+#endif
+
 #if !defined(_MIPS_SIM)
 -- something is very wrong --
 #else
Index: src/mips/ffi.c
===================================================================
--- src/mips/ffi.c (revision 148171)
+++ src/mips/ffi.c (working copy)
@@ -1,5 +1,6 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 1996, 2007 Red Hat, Inc.
+   ffi.c - Copyright (c) 1996, 2007, 2008  Red Hat, Inc.
+           Copyright (c) 2008       David Daney

    MIPS Foreign Function Interface

@@ -29,6 +30,16 @@

 #include <stdlib.h>

+#ifdef __GNUC__
+#  if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))
+#    define USE__BUILTIN___CLEAR_CACHE 1
+#  endif
+#endif
+
+#ifndef USE__BUILTIN___CLEAR_CACHE
+#include <sys/cachectl.h>
+#endif
+
 #ifdef FFI_DEBUG
 # define FFI_MIPS_STOP_HERE() ffi_stop_here()
 #else
@@ -483,14 +494,14 @@
 /* Low level routine for calling O32 functions */
 extern int ffi_call_O32(void (*)(char *, extended_cif *, int, int),
  extended_cif *, unsigned,
- unsigned, unsigned *, void (*)());
+ unsigned, unsigned *, void (*)(void));

 /* Low level routine for calling N32 functions */
 extern int ffi_call_N32(void (*)(char *, extended_cif *, int, int),
  extended_cif *, unsigned,
- unsigned, unsigned *, void (*)());
+ unsigned, unsigned *, void (*)(void));

-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   extended_cif ecif;

@@ -616,8 +627,11 @@
   closure->fun = fun;
   closure->user_data = user_data;

+#ifdef USE__BUILTIN___CLEAR_CACHE
   __builtin___clear_cache(clear_location, clear_location + FFI_TRAMPOLINE_SIZE);
-
+#else
+  cacheflush (clear_location, FFI_TRAMPOLINE_SIZE, ICACHE);
+#endif
   return FFI_OK;
 }

Index: src/sh/ffi.c
===================================================================
--- src/sh/ffi.c (revision 148171)
+++ src/sh/ffi.c (working copy)
@@ -1,6 +1,6 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
-   Kaz Kojima
+   ffi.c - Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Kaz Kojima
+           Copyright (c) 2008 Red Hat, Inc.

    SuperH Foreign Function Interface

@@ -407,9 +407,9 @@
 }

 extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *,
-  unsigned, unsigned, unsigned *, void (*fn)());
+  unsigned, unsigned, unsigned *, void (*fn)(void));

-void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
+void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
 {
   extended_cif ecif;
   UINT64 trvalue;


Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

x86 changes: merge from libffi -> gcc.

Timothy Wall, please check this one.

Thanks,
Andrew.



2008-02-26  Anthony Green  <green@...>
            Thomas Heller  <theller@...>

        * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
        comment.

2008-02-03  Timothy Wall  <twall@...>

        * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
          offset based on code pointer, not data pointer.

2008-01-31  Timothy Wall <twall@...>

        * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
        closures.
        * src/x86/ffitarget.h: Increase size of trampoline for stdcall
        closures.
        * src/x86/win32.S: Add assembly for stdcall closure.
        * src/x86/ffi.c: Initialize stdcall closure trampoline.

--- /home/aph/gcc/trunk/libffi/src/x86/ffi.c 2009-06-04 16:47:13.000000000 +0100
+++ ./src/x86/ffi.c 2008-04-03 19:57:34.000000000 +0100
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 1996, 1998, 1999, 2001, 2007  Red Hat, Inc.
+   ffi.c - Copyright (c) 1996, 1998, 1999, 2001, 2007, 2008  Red Hat, Inc.
            Copyright (c) 2002  Ranjit Mathew
            Copyright (c) 2002  Bo Thorsen
            Copyright (c) 2002  Roger Sayle
@@ -236,6 +236,10 @@
      __attribute__ ((regparm(1)));
 void FFI_HIDDEN ffi_closure_raw_SYSV (ffi_raw_closure *)
      __attribute__ ((regparm(1)));
+#ifdef X86_WIN32
+void FFI_HIDDEN ffi_closure_STDCALL (ffi_closure *)
+     __attribute__ ((regparm(1)));
+#endif

 /* This function is jumped to by the trampoline */

@@ -245,7 +249,7 @@
      void **respp;
      void *args;
 {
-  // our various things...
+  /* our various things...  */
   ffi_cif       *cif;
   void         **arg_area;

@@ -311,13 +315,26 @@
 ({ unsigned char *__tramp = (unsigned char*)(TRAMP); \
    unsigned int  __fun = (unsigned int)(FUN); \
    unsigned int  __ctx = (unsigned int)(CTX); \
-   unsigned int  __dis = __fun - (__ctx + FFI_TRAMPOLINE_SIZE); \
+   unsigned int  __dis = __fun - (__ctx + 10); \
    *(unsigned char*) &__tramp[0] = 0xb8; \
    *(unsigned int*)  &__tramp[1] = __ctx; /* movl __ctx, %eax */ \
    *(unsigned char *)  &__tramp[5] = 0xe9; \
    *(unsigned int*)  &__tramp[6] = __dis; /* jmp __fun  */ \
  })

+#define FFI_INIT_TRAMPOLINE_STDCALL(TRAMP,FUN,CTX,SIZE)  \
+({ unsigned char *__tramp = (unsigned char*)(TRAMP); \
+   unsigned int  __fun = (unsigned int)(FUN); \
+   unsigned int  __ctx = (unsigned int)(CTX); \
+   unsigned int  __dis = __fun - (__ctx + 10); \
+   unsigned short __size = (unsigned short)(SIZE); \
+   *(unsigned char*) &__tramp[0] = 0xb8; \
+   *(unsigned int*)  &__tramp[1] = __ctx; /* movl __ctx, %eax */ \
+   *(unsigned char *)  &__tramp[5] = 0xe8; \
+   *(unsigned int*)  &__tramp[6] = __dis; /* call __fun  */ \
+   *(unsigned char *)  &__tramp[10] = 0xc2; \
+   *(unsigned short*)  &__tramp[11] = __size; /* ret __size  */ \
+ })

 /* the cif must already be prep'ed */

@@ -328,11 +345,24 @@
       void *user_data,
       void *codeloc)
 {
-  FFI_ASSERT (cif->abi == FFI_SYSV);
-
-  FFI_INIT_TRAMPOLINE (&closure->tramp[0], \
-       &ffi_closure_SYSV,  \
-       codeloc);
+  if (cif->abi == FFI_SYSV)
+    {
+      FFI_INIT_TRAMPOLINE (&closure->tramp[0],
+                           &ffi_closure_SYSV,
+                           (void*)codeloc);
+    }
+#ifdef X86_WIN32
+  else if (cif->abi == FFI_STDCALL)
+    {
+      FFI_INIT_TRAMPOLINE_STDCALL (&closure->tramp[0],
+                                   &ffi_closure_STDCALL,
+                                   (void*)codeloc, cif->bytes);
+    }
+#endif
+  else
+    {
+      return FFI_BAD_ABI;
+    }

   closure->cif  = cif;
   closure->user_data = user_data;
@@ -354,7 +384,9 @@
 {
   int i;

-  FFI_ASSERT (cif->abi == FFI_SYSV);
+  if (cif->abi != FFI_SYSV) {
+    return FFI_BAD_ABI;
+  }

   // we currently don't support certain kinds of arguments for raw
   // closures.  This should be implemented by a separate assembly language
--- /home/aph/gcc/trunk/libffi/src/x86/ffitarget.h 2009-06-04 15:25:12.000000000 +0100
+++ ./src/x86/ffitarget.h 2008-02-15 01:24:06.000000000 +0000
@@ -78,7 +78,11 @@
 #define FFI_TRAMPOLINE_SIZE 24
 #define FFI_NATIVE_RAW_API 0
 #else
+#ifdef X86_WIN32
+#define FFI_TRAMPOLINE_SIZE 13
+#else
 #define FFI_TRAMPOLINE_SIZE 10
+#endif
 #define FFI_NATIVE_RAW_API 1 /* x86 has native raw api support */
 #endif

--- /home/aph/gcc/trunk/libffi/src/x86/win32.S 2009-06-04 15:43:59.000000000 +0100
+++ ./src/x86/win32.S 2009-06-04 15:30:26.000000000 +0100
@@ -264,6 +264,22 @@
 .ffi_call_STDCALL_end:
 .LFE2:

+ .globl _ffi_closure_STDCALL
+_ffi_closure_STDCALL:
+ pushl %ebp
+ movl %esp, %ebp
+ subl $40, %esp
+ leal -24(%ebp), %edx
+ movl %edx, -12(%ebp) /* resp */
+ leal 12(%ebp), %edx  /* account for stub return address on stack */
+ movl %edx, 4(%esp) /* args */
+ leal -12(%ebp), %edx
+ movl %edx, (%esp) /* &resp */
+ call _ffi_closure_SYSV_inner
+ movl -12(%ebp), %ecx
+ jmp     .Lcls_return_result
+.ffi_closure_STDCALL_end:
+
         # This assumes we are using gas.
         .balign 16
  .globl _ffi_closure_SYSV
@@ -283,6 +299,7 @@
  movl %edx, (%esp) /* &resp */
  call _ffi_closure_SYSV_inner
  movl -12(%ebp), %ecx
+.Lcls_return_result:
  cmpl $FFI_TYPE_INT, %eax
  je .Lcls_retint
  cmpl $FFI_TYPE_FLOAT, %eax
@@ -392,70 +409,6 @@

 #endif /* !FFI_NO_RAW_API */

-        # This assumes we are using gas.
- .balign 16
- .globl _ffi_closure_STDCALL
- .def _ffi_closure_STDCALL; .scl 2; .type 32; .endef
-_ffi_closure_STDCALL:
-.LFB5:
- pushl %ebp
-.LCFI9:
- movl %esp, %ebp
-.LCFI10:
- subl $40, %esp
- leal -24(%ebp), %edx
- movl %edx, -12(%ebp) /* resp */
- leal 12(%ebp), %edx  /* account for stub return address on stack */
- movl %edx, 4(%esp) /* args */
- leal -12(%ebp), %edx
- movl %edx, (%esp) /* &resp */
- call _ffi_closure_SYSV_inner
- movl -12(%ebp), %ecx
- /* It would be nice to just share this code with the
-   duplicate sequence in _ffi_closure_SYSV, if only
-   there were some way to represent that in the EH info.  */
- cmpl $FFI_TYPE_INT, %eax
- je .Lscls_retint
- cmpl $FFI_TYPE_FLOAT, %eax
- je .Lscls_retfloat
- cmpl $FFI_TYPE_DOUBLE, %eax
- je .Lscls_retdouble
- cmpl $FFI_TYPE_LONGDOUBLE, %eax
- je .Lscls_retldouble
- cmpl $FFI_TYPE_SINT64, %eax
- je .Lscls_retllong
- cmpl $FFI_TYPE_SINT8, %eax /* 1-byte struct */
- je .Lscls_retstruct1
- cmpl $FFI_TYPE_SINT16, %eax /* 2-bytes struct */
- je .Lscls_retstruct2
-.Lscls_epilogue:
- movl %ebp, %esp
- popl %ebp
- ret
-.Lscls_retint:
- movl (%ecx), %eax
- jmp .Lscls_epilogue
-.Lscls_retfloat:
- flds (%ecx)
- jmp .Lscls_epilogue
-.Lscls_retdouble:
- fldl (%ecx)
- jmp .Lscls_epilogue
-.Lscls_retldouble:
- fldt (%ecx)
- jmp .Lscls_epilogue
-.Lscls_retllong:
- movl (%ecx), %eax
- movl 4(%ecx), %edx
- jmp .Lscls_epilogue
-.Lscls_retstruct1:
- movsbl (%ecx), %eax
- jmp .Lscls_epilogue
-.Lscls_retstruct2:
- movswl (%ecx), %eax
- jmp .Lscls_epilogue
-.ffi_closure_STDCALL_end:
-.LFE5:

  .section .eh_frame,"w"
 .Lframe1:
@@ -618,34 +571,3 @@
 .LEFDE4:

 #endif /* !FFI_NO_RAW_API */
-
-.LSFDE5:
- .long .LEFDE5-.LASFDE5 /* FDE Length */
-.LASFDE5:
- .long .LASFDE5-.Lframe1 /* FDE CIE offset */
-#if defined __PIC__ && defined HAVE_AS_X86_PCREL
- .long .LFB5-. /* FDE initial location */
-#else
- .long .LFB5
-#endif
- .long .LFE5-.LFB5 /* FDE address range */
-#ifdef __PIC__
- .byte 0x0 /* .uleb128 0x0; Augmentation size */
-#endif
- /* DW_CFA_xxx CFI instructions go here.  */
-
- .byte 0x4 /* DW_CFA_advance_loc4 */
- .long .LCFI9-.LFB5
- .byte 0xe /* DW_CFA_def_cfa_offset CFA = r4 + 8 = 8(%esp) */
- .byte 0x8 /* .uleb128 0x8 */
- .byte 0x85 /* DW_CFA_offset, column 0x5 %ebp at CFA + 2 * -4 */
- .byte 0x2 /* .uleb128 0x2 */
-
- .byte 0x4 /* DW_CFA_advance_loc4 */
- .long .LCFI10-.LCFI9
- .byte 0xd /* DW_CFA_def_cfa_register CFA = r5 = %ebp */
- .byte 0x5 /* .uleb128 0x5 */
-
- /* End of DW_CFA_xxx CFI instructions.  */
- .align 4
-.LEFDE5:


Re: libffi merge

by Dave Korn-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andrew Haley wrote:
> x86 changes: merge from libffi -> gcc.
>
> Timothy Wall, please check this one.

  I am not he, but ...

> --- /home/aph/gcc/trunk/libffi/src/x86/win32.S 2009-06-04 15:43:59.000000000 +0100
> +++ ./src/x86/win32.S 2009-06-04 15:30:26.000000000 +0100
> @@ -264,6 +264,22 @@
>  .ffi_call_STDCALL_end:
>  .LFE2:
>
> + .globl _ffi_closure_STDCALL
> +_ffi_closure_STDCALL:
> + pushl %ebp
> + movl %esp, %ebp
> + subl $40, %esp
> + leal -24(%ebp), %edx
> + movl %edx, -12(%ebp) /* resp */
> + leal 12(%ebp), %edx  /* account for stub return address on stack */
> + movl %edx, 4(%esp) /* args */
> + leal -12(%ebp), %edx
> + movl %edx, (%esp) /* &resp */
> + call _ffi_closure_SYSV_inner
> + movl -12(%ebp), %ecx
> + jmp     .Lcls_return_result
        ^^^^^^^^^^^^^^^^^^^^^^^^^

  I figured we couldn't share this code, owing to the need to have
discontiguous FDEs in the debug info.  Looks like you effectively have the
inverse of my last patch in there along with some of the libffi changes.

> - /* It would be nice to just share this code with the
> -   duplicate sequence in _ffi_closure_SYSV, if only
> -   there were some way to represent that in the EH info.  */

Refs: http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01473.html
      http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01476.html

    cheers,
      DaveK

Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dave Korn wrote:

> Andrew Haley wrote:
>> x86 changes: merge from libffi -> gcc.
>>
>> Timothy Wall, please check this one.
>
>   I am not he, but ...
>
>> --- /home/aph/gcc/trunk/libffi/src/x86/win32.S 2009-06-04 15:43:59.000000000 +0100
>> +++ ./src/x86/win32.S 2009-06-04 15:30:26.000000000 +0100
>> @@ -264,6 +264,22 @@
>>  .ffi_call_STDCALL_end:
>>  .LFE2:
>>
>> + .globl _ffi_closure_STDCALL
>> +_ffi_closure_STDCALL:
>> + pushl %ebp
>> + movl %esp, %ebp
>> + subl $40, %esp
>> + leal -24(%ebp), %edx
>> + movl %edx, -12(%ebp) /* resp */
>> + leal 12(%ebp), %edx  /* account for stub return address on stack */
>> + movl %edx, 4(%esp) /* args */
>> + leal -12(%ebp), %edx
>> + movl %edx, (%esp) /* &resp */
>> + call _ffi_closure_SYSV_inner
>> + movl -12(%ebp), %ecx
>> + jmp     .Lcls_return_result
>         ^^^^^^^^^^^^^^^^^^^^^^^^^
>
>   I figured we couldn't share this code, owing to the need to have
> discontiguous FDEs in the debug info.  Looks like you effectively have the
> inverse of my last patch in there along with some of the libffi changes.

Well, hold on now.  Is the code in libffi correct, or not?  I don't get
it.  Neither of those emails contain a patch.

Andrew.

Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Correct a misapplied merge from gcc.

Andrew.


2009-06-04  Andrew Haley  <aph@...>

        * src/powerpc/ffitarget.h: Fix misapplied merge from gcc.

Index: src/powerpc/ffitarget.h
===================================================================
RCS file: /cvs/libffi/libffi/src/powerpc/ffitarget.h,v
retrieving revision 1.5
diff -c -r1.5 ffitarget.h
*** src/powerpc/ffitarget.h     19 Dec 2008 15:47:44 -0000      1.5
--- src/powerpc/ffitarget.h     4 Jun 2009 16:28:19 -0000
***************
*** 95,106 ****
  /* For additional types like the below, take care about the order in
     ppc_closures.S. They must follow after the FFI_TYPE_LAST.  */

  /* Needed for FFI_SYSV small structure returns.
     We use two flag bits, (FLAG_SYSV_SMST_R3, FLAG_SYSV_SMST_R4) which are
     defined in ffi.c, to determine the exact return type and its size.  */
- #define FFI_TYPE_UINT128 (FFI_TYPE_LAST + 1)
-
- /* Needed for FFI_SYSV small structure returns.  */
  #define FFI_SYSV_TYPE_SMALL_STRUCT (FFI_TYPE_LAST + 2)

  #if defined(POWERPC64) || defined(POWERPC_AIX)
--- 95,106 ----
  /* For additional types like the below, take care about the order in
     ppc_closures.S. They must follow after the FFI_TYPE_LAST.  */

+ /* Needed for soft-float long-double-128 support.  */
+ #define FFI_TYPE_UINT128 (FFI_TYPE_LAST + 1)
+
  /* Needed for FFI_SYSV small structure returns.
     We use two flag bits, (FLAG_SYSV_SMST_R3, FLAG_SYSV_SMST_R4) which are
     defined in ffi.c, to determine the exact return type and its size.  */
  #define FFI_SYSV_TYPE_SMALL_STRUCT (FFI_TYPE_LAST + 2)

  #if defined(POWERPC64) || defined(POWERPC_AIX)


Re: libffi merge

by Andrew Haley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dave Korn wrote:

> Andrew Haley wrote:
>> x86 changes: merge from libffi -> gcc.
>>
>> Timothy Wall, please check this one.
>
>   I am not he, but ...
>
>> --- /home/aph/gcc/trunk/libffi/src/x86/win32.S 2009-06-04 15:43:59.000000000 +0100
>> +++ ./src/x86/win32.S 2009-06-04 15:30:26.000000000 +0100
>> @@ -264,6 +264,22 @@
>>  .ffi_call_STDCALL_end:
>>  .LFE2:
>>
>> + .globl _ffi_closure_STDCALL
>> +_ffi_closure_STDCALL:
>> + pushl %ebp
>> + movl %esp, %ebp
>> + subl $40, %esp
>> + leal -24(%ebp), %edx
>> + movl %edx, -12(%ebp) /* resp */
>> + leal 12(%ebp), %edx  /* account for stub return address on stack */
>> + movl %edx, 4(%esp) /* args */
>> + leal -12(%ebp), %edx
>> + movl %edx, (%esp) /* &resp */
>> + call _ffi_closure_SYSV_inner
>> + movl -12(%ebp), %ecx
>> + jmp     .Lcls_return_result
>         ^^^^^^^^^^^^^^^^^^^^^^^^^
>
>   I figured we couldn't share this code, owing to the need to have
> discontiguous FDEs in the debug info.  Looks like you effectively have the
> inverse of my last patch in there along with some of the libffi changes.
>
>> - /* It would be nice to just share this code with the
>> -   duplicate sequence in _ffi_closure_SYSV, if only
>> -   there were some way to represent that in the EH info.  */
>
> Refs: http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01473.html
>       http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01476.html

OK, I backed out that patch.  I'm awaiting some explanation of what on Earth
is going on.  I'm guessing that Timothy Wall changed the version upstream but
not the version in gcc, and then you changed the version in gcc but not the
version upstream.  So, we have a two sets of changes, and I can't tell which
is supposed to go where.

Andrew.




Re: libffi merge

by Timothy Wall-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Jun 4, 2009, at 1:03 PM, Andrew Haley wrote:

> Dave Korn wrote:
>> Andrew Haley wrote:
>>> x86 changes: merge from libffi -> gcc.
>>>
>>> Timothy Wall, please check this one.
>>
>>  I am not he, but ...
>>
>>> --- /home/aph/gcc/trunk/libffi/src/x86/win32.S 2009-06-04  
>>> 15:43:59.000000000 +0100
>>> +++ ./src/x86/win32.S 2009-06-04 15:30:26.000000000 +0100
>>> @@ -264,6 +264,22 @@
>>> .ffi_call_STDCALL_end:
>>> .LFE2:
>>>
>>> + .globl _ffi_closure_STDCALL
>>> +_ffi_closure_STDCALL:
>>> + pushl %ebp
>>> + movl %esp, %ebp
>>> + subl $40, %esp
>>> + leal -24(%ebp), %edx
>>> + movl %edx, -12(%ebp) /* resp */
>>> + leal 12(%ebp), %edx  /* account for stub return address on stack  
>>> */
>>> + movl %edx, 4(%esp) /* args */
>>> + leal -12(%ebp), %edx
>>> + movl %edx, (%esp) /* &resp */
>>> + call _ffi_closure_SYSV_inner
>>> + movl -12(%ebp), %ecx
>>> + jmp     .Lcls_return_result
>>        ^^^^^^^^^^^^^^^^^^^^^^^^^
>>
>>  I figured we couldn't share this code, owing to the need to have
>> discontiguous FDEs in the debug info.  Looks like you effectively  
>> have the
>> inverse of my last patch in there along with some of the libffi  
>> changes.
>>
>>> - /* It would be nice to just share this code with the
>>> -   duplicate sequence in _ffi_closure_SYSV, if only
>>> -   there were some way to represent that in the EH info.  */
>>
>> Refs: http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01473.html
>>      http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01476.html
>
> OK, I backed out that patch.  I'm awaiting some explanation of what  
> on Earth
> is going on.  I'm guessing that Timothy Wall changed the version  
> upstream but
> not the version in gcc, and then you changed the version in gcc but  
> not the
> version upstream.  So, we have a two sets of changes, and I can't  
> tell which
> is supposed to go where.

I applied the STDCALL closure patch to libffi, but not to GCC.  I  
believe Dave applied the STDCALL closure patch to libffi, expanded  
somewhat to include the extra EH info.

< Prev | 1 - 2 - 3 | Next >