summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2019-05-29 11:30:24 +0100
committerMarek Szuba <marecki@gentoo.org>2019-05-29 11:30:58 +0100
commit5b8c1208f08af0fa8b870e3e677abf8cdc7c1bc3 (patch)
tree2fd73165770d564d804d2666ef991ab2bf671bee /dev-libs/amdgpu-pro-opencl
parentnet-wireless/wepattack: [QA] Fix openssl dep to use :0= (diff)
downloadgentoo-5b8c1208f08af0fa8b870e3e677abf8cdc7c1bc3.tar.gz
gentoo-5b8c1208f08af0fa8b870e3e677abf8cdc7c1bc3.tar.bz2
gentoo-5b8c1208f08af0fa8b870e3e677abf8cdc7c1bc3.zip
dev-libs/amdgpu-pro-opencl: conflict with media-libs/mesa[opencl]
With both this and the Mesa OpenCL state tracker enabled, using dev-libs/ocl-icd one ends up with two OpenCL platforms pointing to the same hardware - and more importantly causes segmentation faults in all applications attempting to use OpenCL. Closes: https://bugs.gentoo.org/686790 Signed-off-by: Marek Szuba <marecki@gentoo.org> Package-Manager: Portage-2.3.66, Repoman-2.3.11
Diffstat (limited to 'dev-libs/amdgpu-pro-opencl')
-rw-r--r--dev-libs/amdgpu-pro-opencl/amdgpu-pro-opencl-19.10.785425-r1.ebuild100
1 files changed, 100 insertions, 0 deletions
diff --git a/dev-libs/amdgpu-pro-opencl/amdgpu-pro-opencl-19.10.785425-r1.ebuild b/dev-libs/amdgpu-pro-opencl/amdgpu-pro-opencl-19.10.785425-r1.ebuild
new file mode 100644
index 000000000000..9e9ca9dc6bed
--- /dev/null
+++ b/dev-libs/amdgpu-pro-opencl/amdgpu-pro-opencl-19.10.785425-r1.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+
+inherit unpacker multilib-minimal
+
+SUPER_PN='amdgpu-pro'
+MY_PV=$(ver_rs 2 '-')
+
+DESCRIPTION="Proprietary OpenCL implementation for AMD GPUs"
+HOMEPAGE="https://www.amd.com/en/support/kb/release-notes/rn-rad-lin-19-10-unified"
+SRC_URI="${SUPER_PN}-${MY_PV}-ubuntu-18.04.tar.xz"
+
+LICENSE="AMD-GPU-PRO-EULA"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RESTRICT="mirror fetch strip"
+
+BDEPEND="dev-util/patchelf"
+COMMON="app-eselect/eselect-opencl
+ dev-libs/ocl-icd"
+DEPEND="${COMMON}"
+RDEPEND="${COMMON}
+ !media-libs/mesa[opencl]" # Bug #686790
+
+QA_PREBUILT="/opt/amdgpu/lib*/*"
+
+S="${WORKDIR}/${SUPER_PN}-${MY_PV}-ubuntu-18.04"
+
+pkg_nofetch() {
+ local pkgver=$(ver_cut 1-2)
+ einfo "Please download Radeon Software for Linux version ${pkgver} for Ubuntu 18.04 from"
+ einfo " ${HOMEPAGE}"
+ einfo "The archive should then be placed into your distfiles directory."
+}
+
+src_unpack() {
+ default
+
+ local ids_ver="1.0.0"
+ local patchlevel=$(ver_cut 3)
+ cd "${S}" || die
+ unpack_deb "${S}/libdrm-amdgpu-common_${ids_ver}-${patchlevel}_all.deb"
+ multilib_parallel_foreach_abi multilib_src_unpack
+}
+
+multilib_src_unpack() {
+ local libdrm_ver="2.4.97"
+ local patchlevel=$(ver_cut 3)
+ local deb_abi
+ [[ ${ABI} == x86 ]] && deb_abi=i386
+
+ mkdir -p "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" >/dev/null || die
+ unpack_deb "${S}/opencl-orca-amdgpu-pro-icd_${MY_PV}_${deb_abi:-${ABI}}.deb"
+ unpack_deb "${S}/libdrm-amdgpu-amdgpu1_${libdrm_ver}-${patchlevel}_${deb_abi:-${ABI}}.deb"
+ popd >/dev/null || die
+}
+
+multilib_src_install() {
+ local dir_abi short_abi
+ [[ ${ABI} == x86 ]] && dir_abi=i386-linux-gnu && short_abi=32
+ [[ ${ABI} == amd64 ]] && dir_abi=x86_64-linux-gnu && short_abi=64
+
+ into "/opt/amdgpu"
+ patchelf --set-rpath '$ORIGIN' "opt/${SUPER_PN}/lib/${dir_abi}"/libamdocl-orca${short_abi}.so || die "Failed to fix library rpath"
+ dolib.so "opt/${SUPER_PN}/lib/${dir_abi}"/*
+ dolib.so "opt/amdgpu/lib/${dir_abi}"/*
+
+ insinto /etc/OpenCL/vendors
+ echo "/opt/amdgpu/$(get_libdir)/libamdocl-orca${short_abi}.so" \
+ > "${T}/${SUPER_PN}-${ABI}.icd" || die "Failed to generate ICD file for ABI ${ABI}"
+ doins "${T}/${SUPER_PN}-${ABI}.icd"
+}
+
+# FIXME: is this right?
+multilib_src_install_all() {
+ ewarn "FOO $PWD"
+ ewarn `ls`
+ insinto "/opt/amdgpu"
+ doins -r opt/amdgpu/share
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ ewarn "Please note that using proprietary OpenCL libraries together with the"
+ ewarn "Open Source amdgpu stack is not officially supported by AMD. Do not ask them"
+ ewarn "for support in case of problems with this package."
+ ewarn ""
+ ewarn "Furthermore, if you have the whole AMDGPU-Pro stack installed this package"
+ ewarn "will almost certainly conflict with it. This might change once AMDGPU-Pro"
+ ewarn "has become officially supported by Gentoo."
+ fi
+
+ "${ROOT}"/usr/bin/eselect opencl set --use-old ocl-icd
+}