mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-09 00:07:57 +03:00
Bug: https://bugs.gentoo.org/964799 Signed-off-by: Sv. Lockal <lockalsash@gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/44165 Signed-off-by: Sam James <sam@gentoo.org>
112 lines
3.1 KiB
Bash
112 lines
3.1 KiB
Bash
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
ROCM_SKIP_GLOBALS=1
|
|
inherit cmake edo flag-o-matic rocm
|
|
|
|
DESCRIPTION="Radeon Open Compute OpenCL Compatible Runtime"
|
|
HOMEPAGE="https://github.com/ROCm/rocm-systems/tree/develop/projects/clr"
|
|
|
|
SRC_URI="https://github.com/ROCm/clr/archive/refs/tags/rocm-${PV}.tar.gz -> rocm-clr-${PV}.tar.gz"
|
|
S="${WORKDIR}/clr-rocm-${PV}/"
|
|
|
|
LICENSE="Apache-2.0 MIT"
|
|
SLOT="0/$(ver_cut 1-2)"
|
|
KEYWORDS="~amd64"
|
|
IUSE="debug numa test"
|
|
RESTRICT="!test? ( test )"
|
|
|
|
RDEPEND="
|
|
dev-libs/rocr-runtime:${SLOT}
|
|
dev-libs/rocm-comgr:${SLOT}
|
|
dev-libs/rocm-device-libs:${SLOT}
|
|
>=virtual/opencl-3
|
|
media-libs/mesa[-opencl]
|
|
numa? ( sys-process/numactl )
|
|
"
|
|
DEPEND="${RDEPEND}"
|
|
BDEPEND="
|
|
>=dev-build/rocm-cmake-6.0
|
|
media-libs/glew
|
|
test? ( >=x11-apps/mesa-progs-8.5.0[X] )
|
|
"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}/${PN}-6.2.4-fix-lib-version.patch"
|
|
"${FILESDIR}/${PN}-6.1.2-musl.patch"
|
|
)
|
|
|
|
src_prepare() {
|
|
# Compatibility with CMake < 3.10 will be removed
|
|
sed -e "/cmake_minimum_required/ s/3\.5/3.10/" \
|
|
-i opencl/khronos/icd/CMakeLists.txt opencl/khronos/headers/opencl2.2/tests/CMakeLists.txt || die
|
|
cmake_src_prepare
|
|
}
|
|
|
|
src_configure() {
|
|
# -Werror=strict-aliasing
|
|
# https://bugs.gentoo.org/856088
|
|
# https://github.com/ROCm/clr/issues/64
|
|
#
|
|
# Do not trust it for LTO either
|
|
append-flags -fno-strict-aliasing
|
|
filter-lto
|
|
|
|
# Fix ld.lld linker error: https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/issues/155
|
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
|
|
|
# Reported upstream: https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/issues/120
|
|
append-cflags -fcommon
|
|
|
|
local mycmakeargs=(
|
|
-Wno-dev
|
|
-DROCM_PATH="${EPREFIX}/usr"
|
|
-DBUILD_TESTS=$(usex test ON OFF)
|
|
-DEMU_ENV=ON
|
|
-DBUILD_ICD=ON
|
|
-DCLR_BUILD_OCL=ON
|
|
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
|
|
-DCMAKE_DISABLE_FIND_PACKAGE_NUMA="$(usex !numa)"
|
|
-DCMAKE_REQUIRE_FIND_PACKAGE_NUMA="$(usex numa)"
|
|
)
|
|
cmake_src_configure
|
|
}
|
|
|
|
src_install() {
|
|
insinto /etc/OpenCL/vendors
|
|
doins opencl/config/amdocl64.icd
|
|
|
|
cd "${BUILD_DIR}"/opencl || die
|
|
insinto /usr/lib64
|
|
doins amdocl/libamdocl64.so*
|
|
doins tools/cltrace/libcltrace.so
|
|
}
|
|
|
|
src_test() {
|
|
check_amdgpu
|
|
cd "${BUILD_DIR}"/tests/ocltst || die
|
|
export OCL_ICD_FILENAMES="${BUILD_DIR}"/amdocl/libamdocl64.so
|
|
local instruction1="Please start an X server using amdgpu driver (not Xvfb!),"
|
|
local instruction2="and export OCLGL_DISPLAY=\${DISPLAY} OCLGL_XAUTHORITY=\${XAUTHORITY} before reruning the test."
|
|
if [[ -n ${OCLGL_DISPLAY+x} ]]; then
|
|
export DISPLAY=${OCLGL_DISPLAY}
|
|
export XAUTHORITY=${OCLGL_XAUTHORITY}
|
|
ebegin "Running oclgl test under DISPLAY ${OCLGL_DISPLAY}"
|
|
if ! glxinfo | grep "OpenGL vendor string: AMD"; then
|
|
ewarn "${instruction1}"
|
|
ewarn "${instruction2}"
|
|
die "This display does not have AMD OpenGL vendor!"
|
|
fi
|
|
./ocltst -m $(realpath liboclgl.so) -A ogl.exclude
|
|
eend $? || die "oclgl test failed"
|
|
else
|
|
ewarn "${instruction1}"
|
|
ewarn "${instruction2}"
|
|
die "\${OCLGL_DISPLAY} not set."
|
|
fi
|
|
edob ./ocltst -m $(realpath liboclruntime.so) -A oclruntime.exclude
|
|
edob ./ocltst -m $(realpath liboclperf.so) -A oclperf.exclude
|
|
}
|