diff options
| author | Michael Forney <mforney@mforney.org> | 2019-08-13 15:30:56 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2019-08-13 15:49:30 -0700 |
| commit | e72c7d5cbdafc763d4cfffcdeb3e06f7c69b0ce7 (patch) | |
| tree | f560f14f51c860879ac5e4b13dd4b55c54ba4b87 /pkg/libffi | |
| parent | d7b16acf48c679b669638a4e8fc9d6affbe8ffa1 (diff) | |
libffi: Some portability fixes
Diffstat (limited to 'pkg/libffi')
4 files changed, 104 insertions, 1 deletions
diff --git a/pkg/libffi/patch/0001-Use-fixed-type-integer-types-when-available.patch b/pkg/libffi/patch/0001-Use-fixed-type-integer-types-when-available.patch new file mode 100644 index 00000000..46b37561 --- /dev/null +++ b/pkg/libffi/patch/0001-Use-fixed-type-integer-types-when-available.patch @@ -0,0 +1,36 @@ +From 8aee4bf7573a7d52c0e3a84e03a964222e13f4c2 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 13 Aug 2019 22:20:39 +0000 +Subject: [PATCH] Use fixed-type integer types when available + +This avoids the use of gcc attributes to select the integer width. +--- + include/ffi_common.h | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/include/ffi_common.h b/include/ffi_common.h +index 37f5a9e..56145f4 100644 +--- a/include/ffi_common.h ++++ b/include/ffi_common.h +@@ -91,7 +91,17 @@ typedef struct + } extended_cif; + + /* Terse sized type definitions. */ +-#if defined(_MSC_VER) || defined(__sgi) || defined(__SUNPRO_C) ++#if __STDC_VERSION__ >= 199901L ++# include <inttypes.h> ++typedef uint8_t UINT8; ++typedef int8_t SINT8; ++typedef uint16_t UINT16; ++typedef int16_t SINT16; ++typedef uint32_t UINT32; ++typedef int32_t SINT32; ++typedef uint64_t UINT64; ++typedef int64_t SINT64; ++#elif defined(_MSC_VER) || defined(__sgi) || defined(__SUNPRO_C) + typedef unsigned char UINT8; + typedef signed char SINT8; + typedef unsigned short UINT16; +-- +2.22.0 + diff --git a/pkg/libffi/patch/0002-Use-generic-padding-instead-of-128-bit-integers.patch b/pkg/libffi/patch/0002-Use-generic-padding-instead-of-128-bit-integers.patch new file mode 100644 index 00000000..6fe04f55 --- /dev/null +++ b/pkg/libffi/patch/0002-Use-generic-padding-instead-of-128-bit-integers.patch @@ -0,0 +1,41 @@ +From 0e209181497d1bd3db35c390fdf05ae58e3d81eb Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 13 Aug 2019 22:27:49 +0000 +Subject: [PATCH] Use generic padding instead of 128-bit integers + +--- + src/x86/ffi64.c | 14 +------------- + 1 file changed, 1 insertion(+), 13 deletions(-) + +diff --git a/src/x86/ffi64.c b/src/x86/ffi64.c +index 5a5e043..fb9ab13 100644 +--- a/src/x86/ffi64.c ++++ b/src/x86/ffi64.c +@@ -38,23 +38,11 @@ + #define MAX_GPR_REGS 6 + #define MAX_SSE_REGS 8 + +-#if defined(__INTEL_COMPILER) +-#include "xmmintrin.h" +-#define UINT128 __m128 +-#else +-#if defined(__SUNPRO_C) +-#include <sunmedia_types.h> +-#define UINT128 __m128i +-#else +-#define UINT128 __int128_t +-#endif +-#endif +- + union big_int_union + { + UINT32 i32; + UINT64 i64; +- UINT128 i128; ++ char pad[16]; + }; + + struct register_args +-- +2.22.0 + diff --git a/pkg/libffi/patch/0003-Don-t-use-complex-types-if-they-are-not-supported.patch b/pkg/libffi/patch/0003-Don-t-use-complex-types-if-they-are-not-supported.patch new file mode 100644 index 00000000..abcb60ff --- /dev/null +++ b/pkg/libffi/patch/0003-Don-t-use-complex-types-if-they-are-not-supported.patch @@ -0,0 +1,26 @@ +From 11d46eaa4293840e7a4c1dde18f75453bfaca54e Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 13 Aug 2019 22:28:49 +0000 +Subject: [PATCH] Don't use complex types if they are not supported + +--- + src/x86/ffitarget.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/x86/ffitarget.h b/src/x86/ffitarget.h +index a236677..709140d 100644 +--- a/src/x86/ffitarget.h ++++ b/src/x86/ffitarget.h +@@ -50,7 +50,9 @@ + #endif + + #define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION ++#ifndef __STDC_NO_COMPLEX__ + #define FFI_TARGET_HAS_COMPLEX_TYPE ++#endif + + /* ---- Generic type definitions ----------------------------------------- */ + +-- +2.22.0 + diff --git a/pkg/libffi/ver b/pkg/libffi/ver index 436ceda7..9ba22d10 100644 --- a/pkg/libffi/ver +++ b/pkg/libffi/ver @@ -1 +1 @@ -3.2.1 r0 +3.2.1 r1 |
