commit: 1074f63fc8c1341b01c09c32c4855beb1a9dac67 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Wed Oct 16 04:33:19 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Oct 16 04:33:19 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1074f63f
dev-libs/libffi: backport test fixes This fixes some issues w/ the test added in 6521e1f5d4cceb00f082def621d7e28b7788b7f5. Signed-off-by: Sam James <sam <AT> gentoo.org> dev-libs/libffi/files/libffi-3.4.6-tests.patch | 104 +++++++++++++++++++++++++ dev-libs/libffi/libffi-3.4.6-r2.ebuild | 1 + 2 files changed, 105 insertions(+) diff --git a/dev-libs/libffi/files/libffi-3.4.6-tests.patch b/dev-libs/libffi/files/libffi-3.4.6-tests.patch new file mode 100644 index 000000000000..e24d01f4c028 --- /dev/null +++ b/dev-libs/libffi/files/libffi-3.4.6-tests.patch @@ -0,0 +1,104 @@ +https://github.com/libffi/libffi/commit/efb98a72d8b9bdb71b4f972efced073bee3b30fc +https://github.com/libffi/libffi/commit/92d384df196a099fde384f9178864dbfe8c6b0fc + +From efb98a72d8b9bdb71b4f972efced073bee3b30fc Mon Sep 17 00:00:00 2001 +From: Anthony Green <[email protected]> +Date: Sun, 15 Sep 2024 07:31:33 -0400 +Subject: [PATCH] Robustify floating point comparison in test + +--- + testsuite/libffi.call/struct_int_float.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/testsuite/libffi.call/struct_int_float.c b/testsuite/libffi.call/struct_int_float.c +index dab1d1fed..82685814c 100644 +--- a/testsuite/libffi.call/struct_int_float.c ++++ b/testsuite/libffi.call/struct_int_float.c +@@ -54,35 +54,35 @@ int main (void) + values[4] = &ts_arg[4]; + args[5] = &ts_type; + values[5] = &ts_arg[5]; +- ++ + /* Initialize the cif */ + CHECK(ffi_prep_cif(&cif, ABI_NUM, 6, &ffi_type_float, args) == FFI_OK); +- ++ + ts_arg[0].i = 1; +- ts_arg[0].f = 1.11f; ++ ts_arg[0].f = 11.11f; + ts_arg[1].i = 2; +- ts_arg[1].f = 2.22f; ++ ts_arg[1].f = 22.22f; + ts_arg[2].i = 3; +- ts_arg[2].f = 3.33f; ++ ts_arg[2].f = 33.33f; + ts_arg[3].i = 4; +- ts_arg[3].f = 4.44f; ++ ts_arg[3].f = 44.44f; + ts_arg[4].i = 5; +- ts_arg[4].f = 5.55f; ++ ts_arg[4].f = 55.55f; + ts_arg[5].i = 6; +- ts_arg[5].f = 6.66f; +- ++ ts_arg[5].f = 66.66f; ++ + printf ("%g\n", ts_arg[0].f); + printf ("%g\n", ts_arg[1].f); + printf ("%g\n", ts_arg[2].f); + printf ("%g\n", ts_arg[3].f); + printf ("%g\n", ts_arg[4].f); + printf ("%g\n", ts_arg[5].f); +- ++ + ffi_call(&cif, FFI_FN(struct_int_float), &rfloat, values); + + printf ("%g\n", rfloat); +- +- CHECK(rfloat == 1.11f); ++ ++ CHECK(fabs(rfloat - 11.11) < FLT_EPSILON); + + exit(0); + } + +From 92d384df196a099fde384f9178864dbfe8c6b0fc Mon Sep 17 00:00:00 2001 +From: Anthony Green <[email protected]> +Date: Sun, 15 Sep 2024 12:32:29 -0400 +Subject: [PATCH] Fix floating point compare + +--- + testsuite/libffi.call/struct_int_float.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/testsuite/libffi.call/struct_int_float.c b/testsuite/libffi.call/struct_int_float.c +index 82685814..66ef6c45 100644 +--- a/testsuite/libffi.call/struct_int_float.c ++++ b/testsuite/libffi.call/struct_int_float.c +@@ -14,11 +14,11 @@ typedef struct + } test_structure_int_float; + + static float ABI_ATTR struct_int_float(test_structure_int_float ts1, +- test_structure_int_float ts2, +- test_structure_int_float ts3, +- test_structure_int_float ts4, +- test_structure_int_float ts5, +- test_structure_int_float ts6) ++ test_structure_int_float ts2 __UNUSED__, ++ test_structure_int_float ts3 __UNUSED__, ++ test_structure_int_float ts4 __UNUSED__, ++ test_structure_int_float ts5 __UNUSED__, ++ test_structure_int_float ts6 __UNUSED__) + { + return ts1.f; + } +@@ -82,7 +82,7 @@ int main (void) + + printf ("%g\n", rfloat); + +- CHECK(fabs(rfloat - 11.11) < FLT_EPSILON); ++ CHECK(fabs(rfloat - 11.11) < 3 * FLT_EPSILON); + + exit(0); + } diff --git a/dev-libs/libffi/libffi-3.4.6-r2.ebuild b/dev-libs/libffi/libffi-3.4.6-r2.ebuild index bf85a9e552da..2235dc0d702f 100644 --- a/dev-libs/libffi/libffi-3.4.6-r2.ebuild +++ b/dev-libs/libffi/libffi-3.4.6-r2.ebuild @@ -42,6 +42,7 @@ PATCHES=( "${FILESDIR}"/${P}-x86-sse.patch "${FILESDIR}"/${P}-arm64-cfi.patch "${FILESDIR}"/${P}-asan.patch + "${FILESDIR}"/${P}-tests.patch "${FILESDIR}"/${P}-regenerate-autotools.patch )
