diff options
Diffstat (limited to 'package/libffi')
-rw-r--r-- | package/libffi/libffi-002-fix-ppc-nofpr.patch | 29 | ||||
-rw-r--r-- | package/libffi/libffi.mk | 27 |
2 files changed, 34 insertions, 22 deletions
diff --git a/package/libffi/libffi-002-fix-ppc-nofpr.patch b/package/libffi/libffi-002-fix-ppc-nofpr.patch new file mode 100644 index 000000000..729bae812 --- /dev/null +++ b/package/libffi/libffi-002-fix-ppc-nofpr.patch @@ -0,0 +1,29 @@ +From: Gilles Talis <gilles.talis@gmail.com> + +On PPC, if __NO_FPRS__ is defined, fparg_count and NUM_FPR_ARG_REGISTERS +are not defined, thus must not be used. + +Signed-off-by: Gilles Talis <gilles.talis@gmail.com> +--- + src/powerpc/ffi.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/powerpc/ffi.c b/src/powerpc/ffi.c +index f3a96a1..9c69584 100644 +--- a/src/powerpc/ffi.c ++++ b/src/powerpc/ffi.c +@@ -376,9 +376,10 @@ ffi_prep_args_SYSV (extended_cif *ecif, unsigned *const stack) + with the number found in ffi_prep_cif_machdep(). However, intarg_count + is incremeneted whenever we place an FP arg on the stack, so account for + that before our assert test. */ ++#ifndef __NO_FPRS__ + if (fparg_count > NUM_FPR_ARG_REGISTERS) + intarg_count -= fparg_count - NUM_FPR_ARG_REGISTERS; +-#ifndef __NO_FPRS__ ++ + FFI_ASSERT (fpr_base.u + <= stacktop.u - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS); + #endif +-- +1.7.10.4 + diff --git a/package/libffi/libffi.mk b/package/libffi/libffi.mk index 9fb86d71c..28a29162d 100644 --- a/package/libffi/libffi.mk +++ b/package/libffi/libffi.mk @@ -4,15 +4,11 @@ # ############################################################# -LIBFFI_VERSION = bcc0c28001b6d427d5cd8037d2e3c892babc6b4c -LIBFFI_SITE = http://github.com/atgreen/libffi/tarball/$(LIBFFI_VERSION) +LIBFFI_VERSION = 3.0.12 +LIBFFI_SITE = ftp://sourceware.org/pub/libffi/ LIBFFI_LICENSE = MIT LIBFFI_LICENSE_FILES = LICENSE LIBFFI_INSTALL_STAGING = YES - -# We're using a version from Git which strangely bundles a generated -# configure script, but it's broken (doesn't generate the libffi.pc -# file). LIBFFI_AUTORECONF = YES # Newer CS MIPS toolchains use a different (compact) eh_frame format @@ -22,13 +18,11 @@ LIBFFI_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -mno-compact-eh" endif # Move the headers to the usual location, and adjust the .pc file -# accordingly. For some reason, the libffi build system forgets to -# install the .pc file, so we do it manually. +# accordingly. define LIBFFI_MOVE_STAGING_HEADERS mv $(STAGING_DIR)/usr/lib/libffi-*/include/*.h $(STAGING_DIR)/usr/include/ - $(INSTALL) -D -m 0644 $(@D)/libffi.pc $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc - $(SED) '/^includedir.*/d' $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc - $(SED) '/^Cflags:.*/d' $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc + $(SED) '/^includedir.*/d' -e '/^Cflags:.*/d' \ + $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc rm -rf $(TARGET_DIR)/usr/lib/libffi-* endef @@ -43,18 +37,7 @@ endef LIBFFI_POST_INSTALL_TARGET_HOOKS += LIBFFI_MOVE_TARGET_HEADERS -# We're using a version from Git which strangely bundles a generated -# configure script, but it's broken (doesn't generate the libffi.pc -# file). HOST_LIBFFI_AUTORECONF = YES -# For some reason, the libffi build system forgets to install the .pc -# file, so we do it manually. -define HOST_LIBFFI_INSTALL_PC_FILE - $(INSTALL) -D $(@D)/libffi.pc $(HOST_DIR)/usr/lib/pkgconfig/libffi.pc -endef - -HOST_LIBFFI_POST_INSTALL_HOOKS += HOST_LIBFFI_INSTALL_PC_FILE - $(eval $(autotools-package)) $(eval $(host-autotools-package)) |