summaryrefslogtreecommitdiff
path: root/dev-libs/c-blosc
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/c-blosc')
-rw-r--r--dev-libs/c-blosc/Manifest2
-rw-r--r--dev-libs/c-blosc/c-blosc-1.21.4-r1.ebuild57
-rw-r--r--dev-libs/c-blosc/files/c-blosc-1.21.4-no-unaligned.patch33
3 files changed, 92 insertions, 0 deletions
diff --git a/dev-libs/c-blosc/Manifest b/dev-libs/c-blosc/Manifest
index c1bed534f55d..587ebfa69b0a 100644
--- a/dev-libs/c-blosc/Manifest
+++ b/dev-libs/c-blosc/Manifest
@@ -1,3 +1,5 @@
+AUX c-blosc-1.21.4-no-unaligned.patch 1275 BLAKE2B 899242fa0cf21d1a177e9633b7e7b38c764f424c327b832b54a16da1f6b519bfcda0493056c1d6db35678e73109e0e766e724dcfabb65c828b1cfa81b3b84677 SHA512 75796e0aae655cc1099ed84c51082adb50db0f7376c7f32925423206bb82b86f995a6ae5d311551fba4fdfb1f0c86c17e0dd43c30f94344680f66a9b9d7e5761
DIST c-blosc-1.21.4.gh.tar.gz 2458878 BLAKE2B 5b58e5069ed99e67adaef832871d45e4e3b88dede169833b07bb1800d35d6d43909c59645f79c003f9a80604e432c81f7d5da35fd19899fbb0378e81f015b0fa SHA512 cbe8406dc88318a582b6ea5e5ba1a25b66814f741743dd512b1a61664691977bfe0896baf24d2e998cdbb209a3ba83c6eb79e86bc1e7a2eb5ef2cde697e8eb65
+EBUILD c-blosc-1.21.4-r1.ebuild 1252 BLAKE2B 2ebe48d324bf19279978c0c290bf2e510aca64899b65c38a9df4e12e541d38ea7d05feacb4a3ba43af8d673fee0963cc5c3cd457ad0252c6256a5928428fab8d SHA512 fb3563480aefddb0e7bf2be5c4f5282473e9cfda32b1286fce4116fb0ca465d996eb32b87c3a21211cc66979a97fc241b321318009172a1215a2c9f6c5f4df50
EBUILD c-blosc-1.21.4.ebuild 1186 BLAKE2B f749ad26fdb344fb6db1e71652b45c04a1e34b17e0c605f6ddbe2b32218f62bbb96d0083912f7694c483d462e6722c51aa8903e5d7f17a9ed0d297b956da3b97 SHA512 f27ae6ae95b4cad296f26871bf79675f9a99301a57fcf5d4341daf3ad3309803e162cb33ae9a2c9687394e7c19a432203d3729f0d8ac3d9d139db99fdca46ae8
MISC metadata.xml 839 BLAKE2B 108d89a888ba31f03eb42a0717c7c9458d599cdb67cf98940c88ff943ce2079c736b6a52ac4206d4ceda17f56ea67e52dae1c77b304d39fbb9ec249a8ac38576 SHA512 f4ed6f93992492a98499ad1dff54b3fcd14e35710e0307041e606ddfff54769c5ed6ccd3ef90a5ce7943425bcee93ea9b46211f643da30d94db88adb6be7d5f8
diff --git a/dev-libs/c-blosc/c-blosc-1.21.4-r1.ebuild b/dev-libs/c-blosc/c-blosc-1.21.4-r1.ebuild
new file mode 100644
index 000000000000..bfeb84b2d188
--- /dev/null
+++ b/dev-libs/c-blosc/c-blosc-1.21.4-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Blocking, shuffling and lossless compression library"
+HOMEPAGE="
+ https://www.blosc.org/
+ https://github.com/Blosc/c-blosc/
+"
+SRC_URI="
+ https://github.com/Blosc/c-blosc/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0/1"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="+lz4 +snappy test zlib zstd"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ lz4? ( >=app-arch/lz4-1.7.5:= )
+ snappy? ( app-arch/snappy:= )
+ zlib? ( sys-libs/zlib:= )
+ zstd? ( app-arch/zstd:= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.21.4-no-unaligned.patch
+)
+
+src_configure() {
+ # remove bundled libs (just in case)
+ rm -rf internal-complibs || die
+
+ local mycmakeargs=(
+ -DBUILD_STATIC=OFF
+ -DBUILD_TESTS=$(usex test)
+ -DBUILD_BENCHMARKS=OFF
+ -DBUILD_FUZZERS=OFF
+ -DDEACTIVATE_LZ4=$(usex !lz4)
+ -DDEACTIVATE_SNAPPY=$(usex !snappy)
+ -DDEACTIVATE_ZLIB=$(usex !zlib)
+ -DDEACTIVATE_ZSTD=$(usex !zstd)
+ -DPREFER_EXTERNAL_LZ4=ON
+ # snappy is always external
+ -DPREFER_EXTERNAL_ZLIB=ON
+ -DPREFER_EXTERNAL_ZSTD=ON
+ )
+ cmake_src_configure
+}
diff --git a/dev-libs/c-blosc/files/c-blosc-1.21.4-no-unaligned.patch b/dev-libs/c-blosc/files/c-blosc-1.21.4-no-unaligned.patch
new file mode 100644
index 000000000000..932df9355a99
--- /dev/null
+++ b/dev-libs/c-blosc/files/c-blosc-1.21.4-no-unaligned.patch
@@ -0,0 +1,33 @@
+Causes SIGBUS on armv7 (at least in jiji's arm32-on-arm64 chroot) in Pandas test
+suite. Unaligned access is UB anyway.
+--- a/blosc/blosc-common.h
++++ b/blosc/blosc-common.h
+@@ -43,28 +43,6 @@
+ */
+ #if !defined(BLOSC_STRICT_ALIGN)
+ #define BLOSC_STRICT_ALIGN
+-#if defined(__i386__) || defined(__386) || defined (__amd64) /* GNU C, Sun Studio */
+-#undef BLOSC_STRICT_ALIGN
+-#elif defined(__i486__) || defined(__i586__) || defined(__i686__) /* GNU C */
+-#undef BLOSC_STRICT_ALIGN
+-#elif defined(_M_IX86) || defined(_M_X64) /* Intel, MSVC */
+-#undef BLOSC_STRICT_ALIGN
+-#elif defined(__386)
+-#undef BLOSC_STRICT_ALIGN
+-#elif defined(_X86_) /* MinGW */
+-#undef BLOSC_STRICT_ALIGN
+-#elif defined(__I86__) /* Digital Mars */
+-#undef BLOSC_STRICT_ALIGN
+-/* Seems like unaligned access in ARM (at least ARMv6) is pretty
+- expensive, so we are going to always enforce strict alignment in ARM.
+- If anybody suggest that newer ARMs are better, we can revisit this. */
+-/* #elif defined(__ARM_FEATURE_UNALIGNED) */ /* ARM, GNU C */
+-/* #undef BLOSC_STRICT_ALIGN */
+-#elif defined(_ARCH_PPC) || defined(__PPC__)
+-/* Modern PowerPC systems (like POWER8) should support unaligned access
+- quite efficiently. */
+-#undef BLOSC_STRICT_ALIGN
+-#endif
+ #endif
+
+ #if defined(__SSE2__)