Hello community,

here is the log from the commit of package libffi for openSUSE:Factory checked 
in at 2019-10-17 12:17:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libffi (Old)
 and      /work/SRC/openSUSE:Factory/.libffi.new.2352 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libffi"

Thu Oct 17 12:17:40 2019 rev:8 rq:738228 version:3.2.1.git505

Changes:
--------
--- /work/SRC/openSUSE:Factory/libffi/libffi.changes    2019-09-30 
15:47:48.223068185 +0200
+++ /work/SRC/openSUSE:Factory/.libffi.new.2352/libffi.changes  2019-10-17 
12:17:41.863863447 +0200
@@ -1,0 +2,9 @@
+Fri Oct 11 07:27:45 UTC 2019 - Guillaume GARDET <[email protected]>
+
+- Workaround aarch64 bug (boo#1153573) with upstream patch
+  https://github.com/libffi/libffi/pull/499 updated to apply
+  on current sources (upstream will probably rework this patch
+  so we need to monitor the issue for the proper fix):
+  * aarch64.patch
+
+-------------------------------------------------------------------

New:
----
  aarch64.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libffi.spec ++++++
--- /var/tmp/diff_new_pack.3Kwdxz/_old  2019-10-17 12:17:42.619861550 +0200
+++ /var/tmp/diff_new_pack.3Kwdxz/_new  2019-10-17 12:17:42.623861540 +0200
@@ -29,6 +29,8 @@
 Source99:       baselibs.conf
 Patch1:         gccbug.patch
 Patch2:         stdcall.patch
+# Workaround from https://github.com/libffi/libffi/issues/498
+Patch3:         aarch64.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  autoconf
 BuildRequires:  automake
@@ -82,6 +84,7 @@
 %setup -q
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
 
 %build
 ./autogen.sh

++++++ aarch64.patch ++++++
diff -purN libffi-3.2.1.git505.orig/src/aarch64/ffi.c 
libffi-3.2.1.git505/src/aarch64/ffi.c
--- libffi-3.2.1.git505.orig/src/aarch64/ffi.c  2019-08-07 20:57:45.000000000 
+0200
+++ libffi-3.2.1.git505/src/aarch64/ffi.c       2019-10-11 08:45:42.702088832 
+0200
@@ -815,7 +815,8 @@ ffi_prep_closure_loc (ffi_closure *closu
   #else
   unsigned char *tramp_code = ffi_data_to_code_pointer (tramp);
   #endif
-  ffi_clear_cache (tramp_code, tramp_code + FFI_TRAMPOLINE_SIZE);
+  if (tramp_code != NULL)
+    ffi_clear_cache (tramp_code, tramp_code + FFI_TRAMPOLINE_SIZE);
 #endif
 
   closure->cif = cif;
diff -purN libffi-3.2.1.git505.orig/src/closures.c 
libffi-3.2.1.git505/src/closures.c
--- libffi-3.2.1.git505.orig/src/closures.c     2019-08-07 20:57:45.000000000 
+0200
+++ libffi-3.2.1.git505/src/closures.c  2019-10-11 08:43:59.265151289 +0200
@@ -925,6 +925,8 @@ void *
 ffi_data_to_code_pointer (void *data)
 {
   msegmentptr seg = segment_holding (gm, data);
+  if (seg == NULL)
+    return NULL;
   return add_segment_exec_offset (data, seg);
 }
 

Reply via email to