diff options
-rw-r--r-- | dev-libs/simde/Manifest | 1 | ||||
-rw-r--r-- | dev-libs/simde/files/simde-0.8.2-musl.patch | 19 | ||||
-rw-r--r-- | dev-libs/simde/simde-0.8.2.ebuild | 45 |
3 files changed, 65 insertions, 0 deletions
diff --git a/dev-libs/simde/Manifest b/dev-libs/simde/Manifest index 01cd007712a6..701b574baabc 100644 --- a/dev-libs/simde/Manifest +++ b/dev-libs/simde/Manifest @@ -1 +1,2 @@ DIST simde-0.8.0.tar.gz 7455442 BLAKE2B 511f609e2588cc39b45a5a3e7f93648d9651e9e3f90220947b7f559ca6281a0db9f876d0692abf24d63528bb84e0ee49da1a165a16eeb91de84639a100a6527b SHA512 b0667583565ea9e59d18a07c7a3cb46710868c9572663e314278ca2004747e337e34f6b927c9c5d29e161caba8ec0428e5299b6e878e226b9f33597a1584b91d +DIST simde-0.8.2.tar.gz 7468969 BLAKE2B 55824ac6d525de475285b430e96c91d7e7cdf363cb42742e55cc8b6e44e5d59d2e07d59fe37897d4bc2023fca35bd908772e01ba95681a00c8f9464dccb0f742 SHA512 4e42d7140c0afae507773527c6c0c07e6f0cdad59a1d42ebcf4bd223fc9f71e91a2e3db7746aca3c0c5ad2a13333c2322ce1e384c7d699ddfe33bed6f107aec5 diff --git a/dev-libs/simde/files/simde-0.8.2-musl.patch b/dev-libs/simde/files/simde-0.8.2-musl.patch new file mode 100644 index 000000000000..fa1c796aec00 --- /dev/null +++ b/dev-libs/simde/files/simde-0.8.2-musl.patch @@ -0,0 +1,19 @@ +This workaround patch should be removable when musl implements C23 +functions (technically this isn't a __GLIBC__-only quirk, but used +due to lack of anything known that's better beside running a build +test for it). + +https://bugs.gentoo.org/926488 +https://github.com/simd-everywhere/simde/issues/1001 +--- a/simde/simde-math.h ++++ b/simde/simde-math.h +@@ -1268,3 +1268,3 @@ + #if \ +- ((!defined(HEDLEY_EMSCRIPTEN_VERSION) || HEDLEY_EMSCRIPTEN_VERSION_CHECK(3, 1, 43)) && HEDLEY_HAS_BUILTIN(__builtin_roundeven)) || \ ++ (defined(__GLIBC__) && (!defined(HEDLEY_EMSCRIPTEN_VERSION) || HEDLEY_EMSCRIPTEN_VERSION_CHECK(3, 1, 43)) && HEDLEY_HAS_BUILTIN(__builtin_roundeven)) || \ + HEDLEY_GCC_VERSION_CHECK(10,0,0) +@@ -1288,3 +1288,3 @@ + #if \ +- ((!defined(HEDLEY_EMSCRIPTEN_VERSION) || HEDLEY_EMSCRIPTEN_VERSION_CHECK(3, 1, 43)) && HEDLEY_HAS_BUILTIN(__builtin_roundevenf)) || \ ++ (defined(__GLIBC__) && (!defined(HEDLEY_EMSCRIPTEN_VERSION) || HEDLEY_EMSCRIPTEN_VERSION_CHECK(3, 1, 43)) && HEDLEY_HAS_BUILTIN(__builtin_roundevenf)) || \ + HEDLEY_GCC_VERSION_CHECK(10,0,0) diff --git a/dev-libs/simde/simde-0.8.2.ebuild b/dev-libs/simde/simde-0.8.2.ebuild new file mode 100644 index 000000000000..b78b059c453a --- /dev/null +++ b/dev-libs/simde/simde-0.8.2.ebuild @@ -0,0 +1,45 @@ +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="Header-only library providing implementations of SIMD instruction sets" +HOMEPAGE="https://simd-everywhere.github.io/blog/" +SRC_URI=" + https://github.com/simd-everywhere/simde/archive/refs/tags/v${PV/_/-}.tar.gz + -> ${P}.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-0.8.2-musl.patch +) + +src_configure() { + # *FLAGS are only used for tests (nothing that is installed), and + # upstream tests with specific *FLAGS and is otherwise flaky with + # -march=native, -mno-*, and such -- unset to be spared headaches. + unset {C,CPP,CXX,LD}FLAGS + + local emesonargs=( + $(meson_use test tests) + ) + + meson_src_configure +} + +src_test() { + if use x86; then + # https://github.com/simd-everywhere/simde/issues/867 (bug #926706) + meson_src_test $(meson_src_test --list | grep -Ev '(dbsad|fpclass)') + else + meson_src_test + fi +} |