summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-libs/simde/Manifest1
-rw-r--r--dev-libs/simde/files/simde-0.8.2-musl.patch19
-rw-r--r--dev-libs/simde/simde-0.8.2.ebuild45
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
+}