aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Ammerlaan <andrewammerlaan@gentoo.org>2022-12-01 21:35:07 +0100
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2022-12-01 22:39:30 +0100
commit12f7d85386a6700e529a14cd7d98ec44f875603a (patch)
tree2839ef136aa4f1d7dbb422837168f341ba44a16b /sys-devel
parentdev-python/nwbinspector: using gh distfile suffix (checksums unchanged) (diff)
downloadsci-12f7d85386a6700e529a14cd7d98ec44f875603a.tar.gz
sci-12f7d85386a6700e529a14cd7d98ec44f875603a.tar.bz2
sci-12f7d85386a6700e529a14cd7d98ec44f875603a.zip
sys-devel/DPC++: new package, add 2022.09
See-also: https://github.com/gentoo/sci/pull/1040 Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/DPC++/DPC++-2022.09.ebuild176
-rw-r--r--sys-devel/DPC++/Manifest3
-rw-r--r--sys-devel/DPC++/files/DPC++-2022.09-system-libs.patch217
-rw-r--r--sys-devel/DPC++/metadata.xml16
4 files changed, 412 insertions, 0 deletions
diff --git a/sys-devel/DPC++/DPC++-2022.09.ebuild b/sys-devel/DPC++/DPC++-2022.09.ebuild
new file mode 100644
index 000000000..fc7ebb76d
--- /dev/null
+++ b/sys-devel/DPC++/DPC++-2022.09.ebuild
@@ -0,0 +1,176 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+inherit cmake python-any-r1
+DOCS_BUILDER="doxygen"
+DOCS_DIR="build/docs"
+DOCS_CONFIG_NAME="doxygen.cfg"
+DOCS_DEPEND="
+ media-gfx/graphviz
+ virtual/latex-base
+ $(python_gen_any_dep '
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/recommonmark[${PYTHON_USEDEP}]
+ dev-python/myst_parser[${PYTHON_USEDEP}]
+ ')
+"
+inherit docs
+
+# We cannot unbundle this because it has to be compiled with the clang/llvm
+# that we are building here. Otherwise we run into problems running the compiler.
+CPU_EMUL_PV="2022-08-22"
+VC_INTR_PV="0.8.1" # Newer versions cause compile failure
+
+DESCRIPTION="oneAPI Data Parallel C++ compiler"
+HOMEPAGE="https://github.com/intel/llvm"
+SRC_URI="
+ https://github.com/intel/llvm/archive/refs/tags/${PV//./-}.tar.gz -> ${P}.tar.gz
+ https://github.com/intel/vc-intrinsics/archive/refs/tags/v${VC_INTR_PV}.tar.gz -> ${P}-vc-intrinsics-${VC_INTR_PV}.tar.gz
+ esimd_emulator? ( https://github.com/intel/cm-cpu-emulation/archive/refs/tags/v${CPU_EMUL_PV}.tar.gz -> ${P}-cm-cpu-emulation-${CPU_EMUL_PV}.tar.gz )
+"
+S="${WORKDIR}/llvm-${PV//./-}"
+CMAKE_USE_DIR="${S}/llvm"
+BUILD_DIR="${S}/build"
+
+LICENSE="Apache-2.0 MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
+ NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+IUSE="cuda hip test esimd_emulator ${ALL_LLVM_TARGETS[*]}"
+REQUIRED_USE="
+ ?? ( cuda hip )
+ cuda? ( llvm_targets_NVPTX )
+ hip? ( llvm_targets_AMDGPU )
+"
+RESTRICT="!test? ( test )"
+
+BDEPEND="virtual/pkgconfig"
+
+DEPEND="
+ dev-libs/boost:=
+ dev-libs/level-zero:=
+ dev-libs/opencl-icd-loader
+ dev-util/opencl-headers
+ dev-util/spirv-headers
+ dev-util/spirv-tools
+ media-libs/libva
+ sys-devel/libtool
+ esimd_emulator? ( dev-libs/libffi:= )
+ cuda? ( dev-util/nvidia-cuda-toolkit:= )
+ hip? ( dev-util/hip:= )
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-system-libs.patch"
+)
+
+src_configure() {
+ # Extracted from buildbot/configure.py
+ local mycmakeargs=(
+ -DLLVM_ENABLE_ASSERTIONS=ON
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ -DLLVM_EXTERNAL_PROJECTS="sycl;llvm-spirv;opencl;libdevice;xpti;xptifw"
+ -DLLVM_EXTERNAL_SYCL_SOURCE_DIR="${S}/sycl"
+ -DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR="${S}/llvm-spirv"
+ -DLLVM_EXTERNAL_XPTI_SOURCE_DIR="${S}/xpti"
+ -DXPTI_SOURCE_DIR="${S}/xpti"
+ -DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR="${S}/xptifw"
+ -DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR="${S}/libdevice"
+ -DLLVM_ENABLE_PROJECTS="clang;sycl;llvm-spirv;opencl;libdevice;xpti;xptifw"
+ -DLLVM_BUILD_TOOLS=ON
+ -DSYCL_ENABLE_WERROR=OFF
+ -DSYCL_INCLUDE_TESTS="$(usex test)"
+ -DCLANG_INCLUDE_TESTS="$(usex test)"
+ -DLLVM_INCLUDE_TESTS="$(usex test)"
+ -DLLVM_SPIRV_INCLUDE_TESTS="$(usex test)"
+ -DLLVM_ENABLE_DOXYGEN="$(usex doc)"
+ -DLLVM_ENABLE_SPHINX="$(usex doc)"
+ -DLLVM_BUILD_DOCS="$(usex doc)"
+ -DSYCL_ENABLE_XPTI_TRACING=ON
+ -DLLVM_ENABLE_LLD=OFF
+ -DXPTI_ENABLE_WERROR=OFF
+ -DSYCL_ENABLE_PLUGINS="level_zero;opencl;$(usev esimd_emulator);$(usev hip);$(usev cuda)"
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR="${ESYSROOT}/usr"
+ -DBOOST_MP11_SOURCE_DIR="${ESYSROOT}/usr "
+ -DLEVEL_ZERO_LIBRARY="${ESYSROOT}/usr/lib64/libze_loader.so"
+ -DLEVEL_ZERO_INCLUDE_DIR="${ESYSROOT}/usr/include"
+ -DLLVMGenXIntrinsics_SOURCE_DIR="${WORKDIR}/vc-intrinsics-${VC_INTR_PV}"
+ -DSYCL_CLANG_EXTRA_FLAGS="${CXXFLAGS}"
+ # The sycl part of the build system insists on installing during compiling
+ # Install it to some temporary directory
+ -DCMAKE_INSTALL_PREFIX="${BUILD_DIR}/install"
+ -DCMAKE_INSTALL_MANDIR="${BUILD_DIR}/install/share/man"
+ -DCMAKE_INSTALL_INFODIR="${BUILD_DIR}/install/share/info"
+ -DCMAKE_INSTALL_DOCDIR="${BUILD_DIR}/install/share/doc/${PF}"
+ )
+
+ if use hip; then
+ mycmakeargs+=(
+ -DSYCL_BUILD_PI_HIP_PLATFORM=AMD
+ -DLIBCLC_GENERATE_REMANGLED_VARIANTS=ON
+ -DLIBCLC_TARGETS_TO_BUILD=";amdgcn--;amdgcn--amdhsa"
+ )
+ fi
+
+ if use cuda; then
+ mycmakeargs+=(
+ -DLIBCLC_GENERATE_REMANGLED_VARIANTS=ON
+ -DLIBCLC_TARGETS_TO_BUILD=";nvptx64--;nvptx64--nvidiacl"
+ )
+ fi
+
+ if use esimd_emulator; then
+ mycmakeargs+=(
+ -DLibFFI_INCLUDE_DIR="${ESYSROOT}/usr/lib64/libffi/include"
+ -DUSE_LOCAL_CM_EMU_SOURCE="${WORKDIR}/cm-cpu-emulation-${CPU_EMUL_PV}"
+ )
+ fi
+
+ if use doc; then
+ mycmakeargs+=( -DSPHINX_WARNINGS_AS_ERRORS=OFF )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ # Build sycl (this also installs some stuff already)
+ cmake_build deploy-sycl-toolchain
+
+ use doc && cmake_build doxygen-sycl
+
+ # Install all other files into the same temporary directory
+ cmake_build install
+}
+
+src_test() {
+ cmake_build check
+}
+
+src_install() {
+ einstalldocs
+
+ local LLVM_INTEL_DIR="/usr/lib/llvm/intel"
+ dodir "${LLVM_INTEL_DIR}"
+
+ # Copy our temporary directory to the image directory
+ mv "${BUILD_DIR}/install"/* "${ED}/${LLVM_INTEL_DIR}" || die
+
+ # Copied from llvm ebuild, put env file last so we don't overwrite main llvm/clang
+ newenvd - "60llvm-intel" <<-_EOF_
+ PATH="${EPREFIX}${LLVM_INTEL_DIR}/bin"
+ # we need to duplicate it in ROOTPATH for Portage to respect...
+ ROOTPATH="${EPREFIX}${LLVM_INTEL_DIR}/bin"
+ MANPATH="${EPREFIX}${LLVM_INTEL_DIR}/share/man"
+ LDPATH="${EPREFIX}${LLVM_INTEL_DIR}/lib:${EPREFIX}${LLVM_INTEL_DIR}/lib64"
+ _EOF_
+}
diff --git a/sys-devel/DPC++/Manifest b/sys-devel/DPC++/Manifest
new file mode 100644
index 000000000..9527a6642
--- /dev/null
+++ b/sys-devel/DPC++/Manifest
@@ -0,0 +1,3 @@
+DIST DPC++-2022.09-cm-cpu-emulation-2022-08-22.tar.gz 328563 BLAKE2B 86dfbf9163e77675227eb1db2242edf0de6e3f6be45ddfc1077d4cfb83e997f4839f2abb4e15688f4e657c263a0102d7fda627d6c57f1bcc2582560f3fdb5664 SHA512 fabd973739c17c3c702d8ea1345df165a272053fe7c6564fb81f00a3a316e1ed69d4fdbd73f408841600cf9705e31fc688c6d88e7b095e8f97b1090b3ecd8ccc
+DIST DPC++-2022.09-vc-intrinsics-0.8.1.tar.gz 138462 BLAKE2B 0f86f5fbeb7931a564eb598d527fd67e96489d0f2e7dba7166ffa468470022eff05e150877c3dd380ad003beb8651a0ac9ffe9c3dceeae6552c46b5f3e00aa64 SHA512 9763f1b624121694d6880ca3ffdf2e344ce3ed1a39c1c1e7dc06195b79acccce5e3d86032bba5c0de440376821c383f8ff59fdd57b0ae93fede17595b0fe0b42
+DIST DPC++-2022.09.tar.gz 171848301 BLAKE2B 48f57fee53370135b25a4e5f27926375fe9e4b707909f5841afa4c0d27a53932404f066db6384b8e8c327f1328cd00339e1c055935eb38fca2a8ce34f3556727 SHA512 f17ac91d4ec03c067595abd8355a54484c2cd8b79bb8b1ed8c90fabd8d83b73cce0271a8b3aa26e2c92e8083a2b3cf145c7e78b68e568c3cb036c80b8a4f9e12
diff --git a/sys-devel/DPC++/files/DPC++-2022.09-system-libs.patch b/sys-devel/DPC++/files/DPC++-2022.09-system-libs.patch
new file mode 100644
index 000000000..7d2cdc823
--- /dev/null
+++ b/sys-devel/DPC++/files/DPC++-2022.09-system-libs.patch
@@ -0,0 +1,217 @@
+diff --git a/opencl/CMakeLists.txt b/opencl/CMakeLists.txt
+index 954317fe2..ba3bf19d3 100644
+--- a/opencl/CMakeLists.txt
++++ b/opencl/CMakeLists.txt
+@@ -23,29 +23,8 @@ set(OCL_LOADER_REPO
+ set(OCL_HEADERS_TAG dcd5bede6859d26833cd85f0d6bbcee7382dc9b3)
+ set(OCL_LOADER_TAG 792682ad3d877ab38573b997808bab3b43902b70)
+
+-# OpenCL Headers
+-if(NOT OpenCL_HEADERS)
+- message(STATUS "Will fetch OpenCL headers from ${OCL_HEADERS_REPO}")
+-
+- FetchContent_Declare(ocl-headers
+- GIT_REPOSITORY ${OCL_HEADERS_REPO}
+- GIT_TAG ${OCL_HEADERS_TAG}
+- )
+-else()
+- message(STATUS "OpenCL headers are added manually ${OpenCL_HEADERS}")
+-
+- FetchContent_Declare(ocl-headers
+- URL ${OpenCL_HEADERS}
+- )
+-endif()
+-
+-FetchContent_MakeAvailable(ocl-headers)
+-FetchContent_GetProperties(ocl-headers)
+ set(OpenCL_INCLUDE_DIR
+- ${ocl-headers_SOURCE_DIR} CACHE PATH "Path to OpenCL Headers")
+-
+-target_compile_definitions(Headers INTERFACE -DCL_TARGET_OPENCL_VERSION=220)
+-add_library(OpenCL-Headers ALIAS Headers)
++ /usr/include CACHE PATH "Path to OpenCL Headers")
+
+ # OpenCL Library (ICD Loader)
+
+@@ -57,25 +36,4 @@ set(OPENCL_ICD_LOADER_HEADERS_DIR
+ # library.
+ set(BUILD_SHARED_LIBS ON)
+
+-if(NOT OpenCL_LIBRARY_SRC)
+- message(STATUS "Will fetch OpenCL ICD Loader from ${OCL_LOADER_REPO}")
+-
+- FetchContent_Declare(ocl-icd
+- GIT_REPOSITORY ${OCL_LOADER_REPO}
+- GIT_TAG ${OCL_LOADER_TAG}
+- )
+-else()
+- # TODO: add possibility to use prebuilt OpenCL library rather than building
+- # together with llvm.
+- message(STATUS
+- "OpenCL ICD Loader sources added manually ${OpenCL_LIBRARY_SRC}")
+-
+- FetchContent_Declare(ocl-icd
+- URL ${OpenCL_LIBRARY_SRC}
+- )
+-endif()
+-
+-FetchContent_MakeAvailable(ocl-icd)
+-add_library(OpenCL-ICD ALIAS OpenCL)
+-
+ add_subdirectory(opencl-aot)
+diff --git a/opencl/opencl-aot/CMakeLists.txt b/opencl/opencl-aot/CMakeLists.txt
+index ff905fd88..b673f79a4 100644
+--- a/opencl/opencl-aot/CMakeLists.txt
++++ b/opencl/opencl-aot/CMakeLists.txt
+@@ -19,5 +19,5 @@ endif()
+
+ target_link_libraries(${OPENCL_AOT_PROJECT_NAME}
+ PRIVATE
+- OpenCL-Headers
+- OpenCL-ICD)
++ OpenCL
++)
+diff --git a/sycl/cmake/modules/AddSYCL.cmake b/sycl/cmake/modules/AddSYCL.cmake
+index aa0cfcadd..9cfa5aadd 100644
+--- a/sycl/cmake/modules/AddSYCL.cmake
++++ b/sycl/cmake/modules/AddSYCL.cmake
+@@ -47,7 +47,7 @@ function(add_sycl_plugin PLUGIN_NAME)
+ ${sycl_inc_dir}
+ LIBRARIES
+ ${ARG_LIBRARIES}
+- OpenCL-Headers
++ OpenCL
+ )
+
+ install(TARGETS pi_${PLUGIN_NAME}
+diff --git a/sycl/cmake/modules/AddSYCLUnitTest.cmake b/sycl/cmake/modules/AddSYCLUnitTest.cmake
+index 9f5e6dc30..fe0e18b2f 100644
+--- a/sycl/cmake/modules/AddSYCLUnitTest.cmake
++++ b/sycl/cmake/modules/AddSYCLUnitTest.cmake
+@@ -53,7 +53,7 @@ macro(add_sycl_unittest test_dirname link_variant)
+ target_link_libraries(${test_dirname}
+ PRIVATE
+ LLVMTestingSupport
+- OpenCL-Headers
++ OpenCL
+ ${SYCL_LINK_LIBS}
+ )
+ target_include_directories(${test_dirname}
+diff --git a/sycl/plugins/esimd_emulator/CMakeLists.txt b/sycl/plugins/esimd_emulator/CMakeLists.txt
+index 0b32c3925..e8b8616bc 100755
+--- a/sycl/plugins/esimd_emulator/CMakeLists.txt
++++ b/sycl/plugins/esimd_emulator/CMakeLists.txt
+@@ -58,6 +58,7 @@ if ((DEFINED USE_DEFAULT_CM_EMU_SOURCE) OR (DEFINED USE_LOCAL_CM_EMU_SOURCE))
+ INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/cm-emu_install
+ CMAKE_ARGS -DLIBVA_INSTALL_PATH=/usr
+ -D__SYCL_EXPLICIT_SIMD_PLUGIN__=true
++ -DLibFFI_INCLUDE_DIR=${LibFFI_INCLUDE_DIR}
+ -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
+ BUILD_BYPRODUCTS ${LIBCM} ${LIBIGFXCMRT_EMU}
+ )
+diff --git a/sycl/plugins/level_zero/CMakeLists.txt b/sycl/plugins/level_zero/CMakeLists.txt
+index 9391ff1e5..aa823e8fa 100755
+--- a/sycl/plugins/level_zero/CMakeLists.txt
++++ b/sycl/plugins/level_zero/CMakeLists.txt
+@@ -82,7 +82,7 @@ else()
+ COMMAND
+ ${CMAKE_COMMAND} -E copy ${LEVEL_ZERO_LIBRARY_SRC} ${LLVM_LIBRARY_OUTPUT_INTDIR}
+ COMMAND
+- ${CMAKE_COMMAND} -E copy_directory ${LEVEL_ZERO_INCLUDE_DIR} ${LLVM_BINARY_DIR}/include/sycl
++ ${CMAKE_COMMAND} -E copy_directory ${LEVEL_ZERO_INCLUDE_DIR}/level_zero ${LLVM_BINARY_DIR}/include/sycl/level_zero
+ DEPENDS
+ ${LEVEL_ZERO_LIBRARY}
+ ${LEVEL_ZERO_INCLUDE_DIR}
+diff --git a/sycl/plugins/opencl/CMakeLists.txt b/sycl/plugins/opencl/CMakeLists.txt
+index 9943827e4..29fae166e 100644
+--- a/sycl/plugins/opencl/CMakeLists.txt
++++ b/sycl/plugins/opencl/CMakeLists.txt
+@@ -15,7 +15,7 @@ add_sycl_plugin(opencl
+ "${sycl_inc_dir}/sycl/detail/pi.h"
+ "pi_opencl.cpp"
+ LIBRARIES
+- OpenCL-ICD
++ OpenCL
+ )
+
+ set_target_properties(pi_opencl PROPERTIES LINKER_LANGUAGE CXX)
+diff --git a/sycl/source/CMakeLists.txt b/sycl/source/CMakeLists.txt
+index 23b161480..4a5c48625 100644
+--- a/sycl/source/CMakeLists.txt
++++ b/sycl/source/CMakeLists.txt
+@@ -82,7 +82,7 @@ function(add_sycl_rt_library LIB_NAME LIB_OBJ_NAME)
+ )
+ #TODO: Remove dependency on opencl headers.
+ target_link_libraries(${LIB_OBJ_NAME}
+- PRIVATE OpenCL-Headers
++ PRIVATE OpenCL
+ )
+
+ find_package(Threads REQUIRED)
+diff --git a/sycl/tools/CMakeLists.txt b/sycl/tools/CMakeLists.txt
+index eb62c48e1..6a7ff9aef 100644
+--- a/sycl/tools/CMakeLists.txt
++++ b/sycl/tools/CMakeLists.txt
+@@ -38,9 +38,8 @@ endif()
+
+ target_link_libraries(get_device_count_by_type
+ PRIVATE
+- OpenCL-Headers
++ OpenCL
+ LevelZeroLoader::Headers
+- OpenCL-ICD
+ ${LEVEL_ZERO_LIBRARY}
+ # The CUDA and HIP for NVIDA plugins need cudadrv
+ $<$<OR:$<BOOL:${SYCL_BUILD_PI_CUDA}>,$<AND:$<BOOL:${SYCL_BUILD_PI_HIP}>,$<STREQUAL:${SYCL_BUILD_PI_HIP_PLATFORM},NVIDIA>>>:cudadrv>
+diff --git a/sycl/tools/sycl-ls/CMakeLists.txt b/sycl/tools/sycl-ls/CMakeLists.txt
+index f5909cf49..f9c52e3a3 100644
+--- a/sycl/tools/sycl-ls/CMakeLists.txt
++++ b/sycl/tools/sycl-ls/CMakeLists.txt
+@@ -11,7 +11,7 @@ endif()
+ target_link_libraries(sycl-ls
+ PRIVATE
+ ${sycl_lib}
+- OpenCL-Headers
++ OpenCL
+ )
+ install(TARGETS sycl-ls
+ RUNTIME DESTINATION "bin" COMPONENT sycl-ls)
+diff --git a/sycl/tools/sycl-prof/CMakeLists.txt b/sycl/tools/sycl-prof/CMakeLists.txt
+index 09586c1b8..ff708db67 100644
+--- a/sycl/tools/sycl-prof/CMakeLists.txt
++++ b/sycl/tools/sycl-prof/CMakeLists.txt
+@@ -16,7 +16,7 @@ add_library(sycl_profiler_collector SHARED collector.cpp)
+ target_compile_definitions(sycl_profiler_collector PRIVATE XPTI_CALLBACK_API_EXPORTS)
+ target_link_libraries(sycl_profiler_collector PRIVATE xptifw)
+ if (TARGET OpenCL-Headers)
+- target_link_libraries(sycl_profiler_collector PRIVATE OpenCL-Headers)
++ target_link_libraries(sycl_profiler_collector PRIVATE OpenCL)
+ endif()
+ target_include_directories(sycl_profiler_collector PRIVATE
+ "${sycl_inc_dir}"
+diff --git a/sycl/tools/sycl-sanitize/CMakeLists.txt b/sycl/tools/sycl-sanitize/CMakeLists.txt
+index 16e7a1a49..e27b2cb21 100644
+--- a/sycl/tools/sycl-sanitize/CMakeLists.txt
++++ b/sycl/tools/sycl-sanitize/CMakeLists.txt
+@@ -14,7 +14,7 @@ add_library(sycl_sanitizer_collector SHARED collector.cpp)
+ target_compile_definitions(sycl_sanitizer_collector PRIVATE XPTI_CALLBACK_API_EXPORTS)
+ target_link_libraries(sycl_sanitizer_collector PRIVATE xptifw)
+ if (TARGET OpenCL-Headers)
+- target_link_libraries(sycl_sanitizer_collector PRIVATE OpenCL-Headers)
++ target_link_libraries(sycl_sanitizer_collector PRIVATE OpenCL)
+ endif()
+
+ target_include_directories(sycl_sanitizer_collector PRIVATE
+diff --git a/sycl/tools/sycl-trace/CMakeLists.txt b/sycl/tools/sycl-trace/CMakeLists.txt
+index 385a348f6..721e29125 100644
+--- a/sycl/tools/sycl-trace/CMakeLists.txt
++++ b/sycl/tools/sycl-trace/CMakeLists.txt
+@@ -46,7 +46,7 @@ add_custom_target(ze-pretty-printers
+ target_compile_definitions(sycl_pi_trace_collector PRIVATE XPTI_CALLBACK_API_EXPORTS)
+ target_link_libraries(sycl_pi_trace_collector PRIVATE xptifw)
+ if (TARGET OpenCL-Headers)
+- target_link_libraries(sycl_pi_trace_collector PRIVATE OpenCL-Headers)
++ target_link_libraries(sycl_pi_trace_collector PRIVATE OpenCL)
+ endif()
+
+ target_include_directories(sycl_pi_trace_collector PRIVATE
diff --git a/sys-devel/DPC++/metadata.xml b/sys-devel/DPC++/metadata.xml
new file mode 100644
index 000000000..771c45a25
--- /dev/null
+++ b/sys-devel/DPC++/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">intel/llvm</remote-id>
+ </upstream>
+ <use>
+ <flag name="cuda">use the cuda backend</flag>
+ <flag name="esimd_emulator">enable ESIMD CPU emulation</flag>
+ <flag name="hip">use the HIP backend</flag>
+ </use>
+</pkgmetadata>