diff --git a/dev-libs/pocl/pocl-1.8-r2.ebuild b/dev-libs/pocl/pocl-1.8-r2.ebuild index 2c7536c0a..9e871355c 100644 --- a/dev-libs/pocl/pocl-1.8-r2.ebuild +++ b/dev-libs/pocl/pocl-1.8-r2.ebuild @@ -17,9 +17,16 @@ SRC_URI="https://github.com/pocl/pocl/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64" +KEYWORDS="~amd64 ~ppc64" # TODO: hsa tce -IUSE="accel cl20 +conformance cuda debug examples float-conversion hardening +hwloc memmanager test" +IUSE="accel cl20 +conformance cpu_flags_ppc_altivec cpu_flags_ppc_vsx1 cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3 cuda debug examples float-conversion hardening +hwloc memmanager test" +REQUIRED_USE=" + cpu_flags_ppc_vsx3? ( cpu_flags_ppc_altivec cpu_flags_ppc_vsx1 cpu_flags_ppc_vsx2 ) + cpu_flags_ppc_vsx2? ( cpu_flags_ppc_altivec cpu_flags_ppc_vsx1 ) + cpu_flags_ppc_vsx1? ( cpu_flags_ppc_altivec ) +" + + # Tests not yet passing, fragile in Portage environment(?) RESTRICT="!test? ( test ) test" @@ -68,12 +75,28 @@ pkg_setup() { } src_configure() { + local host_cpu_variants="generic" + if use amd64 + then + # Use pocl's curated list of CPU variants which should contain a good match for any given amd64 CPU + host_cpu_variants="distro" + elif use ppc64 + then + # Include all CPU generations that support the configured CPU_FLAGS_PPC + # i.e. the fewer CPU_FLAGS are present, the more variants should be selected + host_cpu_variants="pwr10;pwr9" + use cpu_flags_ppc_vsx3 || host_cpu_variants+=";pwr8" + use cpu_flags_ppc_vsx2 || host_cpu_variants+=";pwr7" + use cpu_flags_ppc_vsx1 || host_cpu_variants+=";pwr6;g5;a2" + use cpu_flags_ppc_altivec || host_cpu_variants+=";generic" + fi + local mycmakeargs=( -DBUILD_SHARED_LIBS=ON -DENABLE_HSA=OFF -DENABLE_ICD=ON -DENABLE_POCL_BUILDING=ON - -DKERNELLIB_HOST_CPU_VARIANTS=distro + -DKERNELLIB_HOST_CPU_VARIANTS="$host_cpu_variants" -DPOCL_ICD_ABSOLUTE_PATH=ON -DSTATIC_LLVM=OFF -DWITH_LLVM_CONFIG=$(get_llvm_prefix -d "${LLVM_MAX_SLOT}")/bin/llvm-config