Hi.

This updates devel/libffi to the latest release.
I got an OK from jasper@ and it survived a bulk on amd64.
Testers on other arches welcomed.

Thanks.


Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/libffi/Makefile,v
retrieving revision 1.46
diff -u -p -r1.46 Makefile
--- Makefile    26 May 2022 07:24:38 -0000      1.46
+++ Makefile    4 Dec 2022 09:34:33 -0000
@@ -1,8 +1,8 @@
 COMMENT=               Foreign Function Interface
 
-V=                     3.4.2
+V=                     3.4.4
 DISTNAME=              libffi-$V
-SHARED_LIBS +=  ffi                  2.0      # 9.0
+SHARED_LIBS +=  ffi                  2.0      # 9.2
 CATEGORIES=            devel
 
 MAINTAINER=            Jasper Lievisse Adriaanse <[email protected]>
@@ -17,14 +17,18 @@ PERMIT_PACKAGE=     Yes
 WANTLIB += c++abi
 .endif
 
-MASTER_SITES= https://github.com/libffi/libffi/releases/download/v$V/
+MASTER_SITES=          https://github.com/libffi/libffi/releases/download/v$V/
 
-DEBUG_PACKAGES =       ${BUILD_PACKAGES}
+DEBUG_PACKAGES=                ${BUILD_PACKAGES}
+
+USE_GMAKE=             Yes
 
 TEST_DEPENDS=          devel/dejagnu
 
 CONFIGURE_STYLE=       gnu
 
-FAKE_FLAGS+=           includesdir="${PREFIX}/include"
+CONFIGURE_ARGS=                --disable-multi-os-directory
+
+FAKE_FLAGS=            includesdir="${PREFIX}/include"
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/libffi/distinfo,v
retrieving revision 1.7
diff -u -p -r1.7 distinfo
--- distinfo    26 May 2022 07:24:38 -0000      1.7
+++ distinfo    4 Dec 2022 09:34:33 -0000
@@ -1,2 +1,2 @@
-SHA256 (libffi-3.4.2.tar.gz) = VA+3IWGaaro73u99lA2Ong5tLBk1lbwkMkG3f/npNiA=
-SIZE (libffi-3.4.2.tar.gz) = 1351355
+SHA256 (libffi-3.4.4.tar.gz) = 1mxWrSWags8qnfxAizK/XaUjcVALhHRff7i2RXEt9nY=
+SIZE (libffi-3.4.4.tar.gz) = 1362394
Index: patches/patch-configure
===================================================================
RCS file: /cvs/ports/devel/libffi/patches/patch-configure,v
retrieving revision 1.13
diff -u -p -r1.13 patch-configure
--- patches/patch-configure     26 May 2022 07:24:38 -0000      1.13
+++ patches/patch-configure     4 Dec 2022 09:34:33 -0000
@@ -1,18 +1,28 @@
+- Use our own libtool
 - Link with libc++abi on arm (to access unwind symbols)
 
 Index: configure
 --- configure.orig
 +++ configure
-@@ -18650,6 +18650,12 @@ $as_echo "#define SYMBOL_UNDERSCORE 1" >>confdefs.h
+@@ -9940,7 +9940,7 @@ esac
+ LIBTOOL_DEPS=$ltmain
  
- fi
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++#LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+ 
+ 
+ 
+@@ -19725,6 +19725,12 @@ if test "x$sys_symbol_underscore" = xyes; then
+ printf "%s\n" "#define SYMBOL_UNDERSCORE 1" >>confdefs.h
  
+ fi
++
 +case "$target" in
 +    arm-*-openbsd*)
 +      LDFLAGS="-lc++abi $LDFLAGS"
 +    ;;
 +esac
-+
+ 
  FFI_EXEC_TRAMPOLINE_TABLE=0
  case "$target" in
-      *arm*-apple-* | aarch64-apple-*)
Index: patches/patch-configure_host
===================================================================
RCS file: /cvs/ports/devel/libffi/patches/patch-configure_host,v
retrieving revision 1.3
diff -u -p -r1.3 patch-configure_host
--- patches/patch-configure_host        26 May 2022 07:24:38 -0000      1.3
+++ patches/patch-configure_host        4 Dec 2022 09:34:33 -0000
@@ -1,7 +1,7 @@
 Index: configure.host
 --- configure.host.orig
 +++ configure.host
-@@ -216,7 +216,7 @@ case "${host}" in
+@@ -223,7 +223,7 @@ case "${host}" in
        TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
        CFLAGS="$CFLAGS -D__NO_FPRS__"
        ;;
Index: patches/patch-src_arm_ffi_c
===================================================================
RCS file: /cvs/ports/devel/libffi/patches/patch-src_arm_ffi_c,v
retrieving revision 1.11
diff -u -p -r1.11 patch-src_arm_ffi_c
--- patches/patch-src_arm_ffi_c 26 May 2022 07:24:38 -0000      1.11
+++ patches/patch-src_arm_ffi_c 4 Dec 2022 09:34:33 -0000
@@ -3,8 +3,8 @@ https://svnweb.freebsd.org/ports/head/de
 Index: src/arm/ffi.c
 --- src/arm/ffi.c.orig
 +++ src/arm/ffi.c
-@@ -64,6 +64,11 @@ extern unsigned char ffi_arm_trampoline[12] FFI_HIDDEN
- #include <machine/sysarch.h>
+@@ -68,6 +68,11 @@ extern unsigned char ffi_arm_trampoline[12] FFI_HIDDEN
+ #include <sys/mman.h>
  #endif
  
 +#ifdef __arm__
@@ -15,7 +15,7 @@ Index: src/arm/ffi.c
  /* Forward declares. */
  static int vfp_type_p (const ffi_type *);
  static void layout_vfp_args (ffi_cif *);
-@@ -621,6 +626,16 @@ ffi_prep_closure_loc (ffi_closure * closure,
+@@ -625,6 +630,16 @@ ffi_prep_closure_loc (ffi_closure * closure,
    config[0] = closure;
    config[1] = closure_func;
  #else
@@ -30,5 +30,5 @@ Index: src/arm/ffi.c
 +      } while (0);
 +#endif
  
- #if defined(FFI_EXEC_STATIC_TRAMP)
+ # if defined(FFI_EXEC_STATIC_TRAMP)
    if (ffi_tramp_is_present(closure))
Index: patches/patch-src_closures_c
===================================================================
RCS file: /cvs/ports/devel/libffi/patches/patch-src_closures_c,v
retrieving revision 1.4
diff -u -p -r1.4 patch-src_closures_c
--- patches/patch-src_closures_c        26 May 2022 07:24:38 -0000      1.4
+++ patches/patch-src_closures_c        4 Dec 2022 09:34:33 -0000
@@ -1,19 +1,19 @@
 Index: src/closures.c
 --- src/closures.c.orig
 +++ src/closures.c
-@@ -878,6 +878,7 @@ dlmmap (void *start, size_t length, int prot,
+@@ -904,6 +904,7 @@ dlmmap (void *start, size_t length, int prot,
        return ptr;
      }
  
 +#if 0
-   if (execfd == -1 && is_emutramp_enabled ())
-     {
-       ptr = mmap (start, length, prot & ~PROT_EXEC, flags, fd, offset);
-@@ -896,6 +897,7 @@ dlmmap (void *start, size_t length, int prot,
+   /* -1 != execfd hints that we already decided to use dlmmap_locked
+      last time.  */
+   if (execfd == -1 && is_mprotect_enabled ())
+@@ -932,6 +933,7 @@ dlmmap (void *start, size_t length, int prot,
         with ((prot & ~PROT_WRITE) | PROT_EXEC) and mremap with
         MREMAP_DUP and prot at this point.  */
      }
 +#endif
  
-   if (execsize == 0 || execfd == -1)
-     {
+   pthread_mutex_lock (&open_temp_exec_file_mutex);
+   ptr = dlmmap_locked (start, length, prot, flags, offset);
Index: patches/patch-testsuite_lib_libffi_exp
===================================================================
RCS file: /cvs/ports/devel/libffi/patches/patch-testsuite_lib_libffi_exp,v
retrieving revision 1.4
diff -u -p -r1.4 patch-testsuite_lib_libffi_exp
--- patches/patch-testsuite_lib_libffi_exp      26 May 2022 07:24:38 -0000      
1.4
+++ patches/patch-testsuite_lib_libffi_exp      4 Dec 2022 09:34:33 -0000
@@ -3,7 +3,7 @@ cc1: error: unrecognized command line op
 Index: testsuite/lib/libffi.exp
 --- testsuite/lib/libffi.exp.orig
 +++ testsuite/lib/libffi.exp
-@@ -491,7 +491,7 @@ proc run-many-tests { testcases extra_flags } {
+@@ -500,7 +500,7 @@ proc run-many-tests { testcases extra_flags } {
          }
        }
        "gnu" {
@@ -11,4 +11,4 @@ Index: testsuite/lib/libffi.exp
 +        set common "-W -Wall"
          if [info exists env(LIBFFI_TEST_OPTIMIZATION)] {
          set optimizations [ list $env(LIBFFI_TEST_OPTIMIZATION) ]
-         } else { 
+         } else {

-- 
Antoine

Reply via email to