commit:     69ac80abe1f3e048a17c956017a9b1a32ef4cf4c
Author:     Bernd Waibel <waebbl-gentoo <AT> posteo <DOT> net>
AuthorDate: Sun Mar  6 09:17:02 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Mar 16 22:33:26 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69ac80ab

dev-libs/imath: add header for f16c instructions on x86

On x86 targets supporting the f16c instructions, a header for the
__cvtss_sh / __cvtsh_ss intrinsics is missing, leading to a build
failure.

Reported-by: bzoloid <bzoloid <AT> gmail.com>
Bug: https://github.com/AcademySoftwareFoundation/Imath/issues/239
Closes: https://bugs.gentoo.org/834628
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Bernd Waibel <waebbl-gentoo <AT> posteo.net>
Closes: https://github.com/gentoo/gentoo/pull/24612
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...alf.h-include-intrinsics-for-f16c-capable.patch | 26 ++++++++
 dev-libs/imath/imath-3.1.4-r4.ebuild               | 74 ++++++++++++++++++++++
 2 files changed, 100 insertions(+)

diff --git 
a/dev-libs/imath/files/imath-3.1.4-half.h-include-intrinsics-for-f16c-capable.patch
 
b/dev-libs/imath/files/imath-3.1.4-half.h-include-intrinsics-for-f16c-capable.patch
new file mode 100644
index 000000000000..5211bd450e38
--- /dev/null
+++ 
b/dev-libs/imath/files/imath-3.1.4-half.h-include-intrinsics-for-f16c-capable.patch
@@ -0,0 +1,26 @@
+From 41e7d468246440f30bc75e7a6a316a9a07e77b23 Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <[email protected]>
+Date: Sun, 6 Mar 2022 10:07:09 +0100
+Subject: [PATCH] half.h: include intrinsics for f16c capable x86 targets
+
+Reported-by: bzoloid <[email protected]>
+Suggested-by: bzoloid <[email protected]>
+
+Bug: https://bugs.gentoo.org/834628
+Bug: https://github.com/AcademySoftwareFoundation/Imath/issues/239
+
+Signed-off-by: Bernd Waibel <[email protected]>
+--- a/src/Imath/half.h
++++ b/src/Imath/half.h
+@@ -181,6 +181,8 @@
+ #        include <intrin.h>
+ #elif defined(__x86_64__)
+ #        include <x86intrin.h>
++#elif defined(__F16C__)
++#             include <immintrin.h>
+ #endif
+ 
+ #include <stdint.h>
+-- 
+2.35.1
+

diff --git a/dev-libs/imath/imath-3.1.4-r4.ebuild 
b/dev-libs/imath/imath-3.1.4-r4.ebuild
new file mode 100644
index 000000000000..26fe42463028
--- /dev/null
+++ b/dev-libs/imath/imath-3.1.4-r4.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit cmake python-single-r1
+
+MY_PN="${PN^}"
+
+DESCRIPTION="Imath basic math package"
+HOMEPAGE="https://imath.readthedocs.io";
+SRC_URI="https://github.com/AcademySoftwareFoundation/${MY_PN}/archive/refs/tags/v${PV}.tar.gz
 -> ${P}.tar.gz"
+# re-keywording needed for (according to ilmbase keywords): ~x64-macos 
~x86-solaris
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 
~amd64-linux ~x86-linux"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="BSD"
+SLOT="3/29"
+IUSE="doc large-stack python test"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+RESTRICT="!test? ( test )"
+
+# blocker due to file collision #803347
+RDEPEND="
+       !dev-libs/imath:0
+       !media-libs/ilmbase
+       sys-libs/zlib
+       python? (
+               !dev-python/pyilmbase
+               ${PYTHON_DEPS}
+               $(python_gen_cond_dep '
+                       dev-libs/boost:=[python,${PYTHON_USEDEP}]
+                       dev-python/numpy[${PYTHON_USEDEP}]
+               ')
+       )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       virtual/pkgconfig
+       doc? ( $(python_gen_cond_dep 'dev-python/breathe[${PYTHON_USEDEP}]') )
+       python? ( ${PYTHON_DEPS} )
+"
+
+PATCHES=( "${FILESDIR}"/${P}-half.h-include-intrinsics-for-f16c-capable.patch )
+
+DOCS=( CHANGES.md CONTRIBUTORS.md README.md SECURITY.md 
docs/PortingGuide2-3.md )
+
+pkg_setup() {
+       use python && python-single-r1_pkg_setup
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DDOCS=$(usex doc)
+               -DIMATH_ENABLE_LARGE_STACK=$(usex large-stack)
+               -DIMATH_HALF_USE_LOOKUP_TABLE=ON
+               -DIMATH_INSTALL_PKG_CONFIG=ON
+               -DIMATH_USE_CLANG_TIDY=OFF
+               -DIMATH_USE_NOEXCEPT=ON
+       )
+       if use python; then
+               mycmakeargs+=(
+                       -DBoost_NO_BOOST_CMAKE=OFF
+                       -DPYTHON=ON
+                       -DPython3_EXECUTABLE="${PYTHON}"
+                       -DPython3_INCLUDE_DIR=$(python_get_includedir)
+                       -DPython3_LIBRARY=$(python_get_library_path)
+               )
+       fi
+
+       cmake_src_configure
+}

Reply via email to