From 8f512ef8bfec202d94e7a06317b9f73c49469606 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jan 21 2020 21:26:40 +0000 Subject: import libffi-3.1-21.el8 --- diff --git a/SOURCES/libffi-rh1652930.patch b/SOURCES/libffi-rh1652930.patch deleted file mode 100644 index 53c522c..0000000 --- a/SOURCES/libffi-rh1652930.patch +++ /dev/null @@ -1,63 +0,0 @@ -Also flush the code alias mapping when creating a closure. It seems -that this is necessary on some aarch64 implementations. The existing -code only flashes the writable mapping. - -diff -rup a/include/ffi_common.h b/include/ffi_common.h ---- a/include/ffi_common.h 2014-04-25 13:45:13.000000000 -0400 -+++ b/include/ffi_common.h 2019-06-14 14:12:04.387499160 -0400 -@@ -82,6 +82,10 @@ ffi_status ffi_prep_cif_machdep(ffi_cif - ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif, - unsigned int nfixedargs, unsigned int ntotalargs); - -+/* Translate a data pointer to a code pointer. Needed for closures on -+ some targets. */ -+void *ffi_data_to_code_pointer (void *data) FFI_HIDDEN; -+ - /* Extended cif, used in callback from assembly routine */ - typedef struct - { -Only in b/include: ffi_common.h.orig -diff -rup a/src/aarch64/ffi.c b/src/aarch64/ffi.c ---- a/src/aarch64/ffi.c 2019-06-14 14:11:03.485469505 -0400 -+++ b/src/aarch64/ffi.c 2019-06-14 14:12:04.392499162 -0400 -@@ -926,6 +926,10 @@ ffi_prep_closure_loc (ffi_closure* closu - FFI_INIT_TRAMPOLINE (&closure->tramp[0], &ffi_closure_SYSV, codeloc, - cif->aarch64_flags); - -+ /* Also clear the cache on the executable alias mapping. */ -+ unsigned char *code = ffi_data_to_code_pointer (&closure->tramp[0]); -+ ffi_clear_cache (code, code + FFI_TRAMPOLINE_SIZE); -+ - closure->cif = cif; - closure->user_data = user_data; - closure->fun = fun; -Only in b/src/aarch64: ffi.c.orig -diff -rup a/src/closures.c b/src/closures.c ---- a/src/closures.c 2014-05-11 09:54:19.000000000 -0400 -+++ b/src/closures.c 2019-06-14 14:12:04.396499164 -0400 -@@ -597,6 +597,13 @@ ffi_closure_alloc (size_t size, void **c - return ptr; - } - -+void * -+ffi_data_to_code_pointer (void *data) -+{ -+ msegmentptr seg = segment_holding (gm, data); -+ return add_segment_exec_offset (data, seg); -+} -+ - /* Release a chunk of memory allocated with ffi_closure_alloc. If - FFI_CLOSURE_FREE_CODE is nonzero, the given address can be the - writable or the executable address given. Otherwise, only the -@@ -656,5 +663,11 @@ ffi_closure_free (void *ptr) - free (ptr); - } - -+void * -+ffi_data_to_code_pointer (void *data) -+{ -+ return data; -+} -+ - # endif /* ! FFI_MMAP_EXEC_WRIT */ - #endif /* FFI_CLOSURES */ diff --git a/SPECS/libffi.spec b/SPECS/libffi.spec index 81cea60..1e30877 100644 --- a/SPECS/libffi.spec +++ b/SPECS/libffi.spec @@ -2,7 +2,7 @@ Name: libffi Version: 3.1 -Release: 20%{?dist} +Release: 21%{?dist} Summary: A portable foreign function interface library Group: System Environment/Libraries @@ -15,7 +15,6 @@ Patch0: libffi-3.1-fix-include-path.patch Patch1: libffi-3.1-fix-exec-stack.patch Patch2: libffi-aarch64-rhbz1174037.patch Patch3: libffi-3.1-aarch64-fix-exec-stack.patch -Patch4: libffi-rh1652930.patch Patch5: libffi-3.1-closures-Create-temporary-file-with-O_TMPFILE-and-O_.patch %description @@ -65,7 +64,6 @@ developing applications that use %{name}. %patch1 -p1 -b .execstack %patch2 -p1 -b .aarch64 %patch3 -p1 -b .aarch64execstack -%patch4 -p1 %patch5 -p1 @@ -127,6 +125,9 @@ fi %{_infodir}/libffi.info.gz %changelog +* Thu Aug 1 2019 DJ Delorie - 3.1-21 +- Revert 1652930 until 1721569 can be fixed (#1652930) + * Fri Jun 14 2019 DJ Delorie - 3.1-20 - closures: Create temporary file with O_TMPFILE and O_CLOEXEC (#1720600)