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); }
