commit:     8b9604628e0d99bec7ff8b40b74c7db1d42351f6
Author:     Sv. Lockal <lockalsash <AT> gmail <DOT> com>
AuthorDate: Thu Nov 27 17:40:57 2025 +0000
Commit:     Sv. Lockal <lockalsash <AT> gmail <DOT> com>
CommitDate: Thu Nov 27 17:41:32 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=8b960462

dev-libs/xrt-xdna: new package, add 202610.2.21.21, 999999

See also: https://wiki.gentoo.org/wiki/User:Lockal/AMDXDNA

Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com>

 dev-libs/xrt-xdna/Manifest                         |   7 ++
 .../files/xrt-xdna-0_p20251025-fix-clang.patch     |  35 ++++++
 dev-libs/xrt-xdna/metadata.xml                     |  12 ++
 dev-libs/xrt-xdna/xrt-xdna-202610.2.21.21.ebuild   | 140 +++++++++++++++++++++
 dev-libs/xrt-xdna/xrt-xdna-999999.ebuild           | 140 +++++++++++++++++++++
 5 files changed, 334 insertions(+)

diff --git a/dev-libs/xrt-xdna/Manifest b/dev-libs/xrt-xdna/Manifest
new file mode 100644
index 0000000000..4583c5802e
--- /dev/null
+++ b/dev-libs/xrt-xdna/Manifest
@@ -0,0 +1,7 @@
+DIST ELFIO-f849001f.tar.gz 6587989 BLAKE2B 
8b8caf331f190bcd89e5647fc34f10abcfba21325eb58269174b9ceda47563dbacf965b4b13f9475044cfc4b58967762f05c2894c6e27e086eddb0dd0bc448ae
 SHA512 
f5e4334db8765ab1b491ea8d06fcc0de6b52f8cf92fd178f7ab2840d3b0ef623ac12f40f702d2887c2fd7568d188b16ea8653849e4eb2e20061f44a98c30fe7e
+DIST XRT-f848f6f0.tar.gz 14660501 BLAKE2B 
a9d23772b069296446cc9688679493dca4c4d5a5c2bd9e587811bfaa7abd9f0cbe74ab05bc94572d2ad354140e070e2422b395ffb92c81f90aa1140e5176fe53
 SHA512 
2eee71217b3f3981d3df9f9c731fd3534a040e1d5676e108b3159380485c43c28154ab3680e186e5991dac4d89bd6d39be595fb32a58e5ad713d0b39f7776d57
+DIST aie-rt-a8b06671.tar.gz 858418 BLAKE2B 
4ec9c12ef3377baf6b17d9081c043b4cc9180a8a94ad1b5be5f15ce1a191cc534b5a128c7fcac55212e20f1d991e128d87282b6b794954cec1f1ca253f355ab3
 SHA512 
93e5d998a8f93b10aa588812ed9c38c3029d6f97702777372915aefe74113cfa430d3b60b8facf85877f07d1c234716a7f8080454a87fc3440fa6e364439201b
+DIST aiebu-9065273e.tar.gz 18201124 BLAKE2B 
59eca62198a79732c1a93d0532c63e965c944a978ae4349313d7f6dacd967842aa2451a1ed9e29f42be88612df77b986488fc14047354167c635fcbb6af5c0b1
 SHA512 
bd7eb639e1ce3b486b0146192e97a7d7156e9ac2ad56383a78aeba26e8eff29159bba590fb1d404f6ee38705a0fc68ff624e792d7bb9ba9f93c2cef062a99adf
+DIST xrt-xdna-202610.2.21.21.tar.gz 15181567 BLAKE2B 
31ff27118ac9474c7b3ff7f820660ba768be001a4ccd7a5c71293065557794ab60a61c8bcb157cdaa961af8da59dade77d423c17827e2d537d40a1f4018b8430
 SHA512 
7e7fefefe8c57ed8ecadb85a4e40b9e7e1d899116de8924fd1c47a6974429258378d5f7b576d01dbdc1653b3e7f03043b5152a5b6f130f00b5c9d23142fc4b02
+DIST xrt_smi_phx-5f7fec23.a 274220 BLAKE2B 
1344cd651aded08075d47a63e3028bfd88016fcec0677c0d72e6880b772ab08a37b2b57d4f3ab20c37adf88c9fbd83b0082bdc41629c136a4518e8a662860cb3
 SHA512 
e0b587e36f3a52c24413f1600c3be175d8629a64283815e59d1296592a88d2c3f3f476d7b57ef591b9c2174d26375837780af121fac8ea8d4e601cfbba3381c2
+DIST xrt_smi_strx-5f7fec23.a 33048194 BLAKE2B 
5364d58551b05e63f1819256daa8e76082de870209d33f03239c071a800ba013e250ff14d5d49c0637bcd5f1aaa6f5c60aba530ee5575514b3123bf13c182586
 SHA512 
ba2149ae9272f3da7c960bedcc0299c2cabb91ae5af8a392c86f2003dccc9ab15146e3029b556be0a2dd78a244c8dc860489af37ea0dd8f1b30999b1b377a883

diff --git a/dev-libs/xrt-xdna/files/xrt-xdna-0_p20251025-fix-clang.patch 
b/dev-libs/xrt-xdna/files/xrt-xdna-0_p20251025-fix-clang.patch
new file mode 100644
index 0000000000..fa670f7bad
--- /dev/null
+++ b/dev-libs/xrt-xdna/files/xrt-xdna-0_p20251025-fix-clang.patch
@@ -0,0 +1,35 @@
+Fix clang errors:
+* variable-sized object may not be initialized
+* cannot pass object of non-trivial type 'std::basic_string<char>' through 
variadic function; call will abort at runtime
+--- a/src/shim/virtio/platform_virtio.cpp
++++ b/src/shim/virtio/platform_virtio.cpp
+@@ -619,7 +619,8 @@ submit_cmd(submit_cmd_arg& arg) const
+   req_sz += nargs * sizeof(uint32_t); // For args handle
+   // Get a 64 bit aligned buffer for req
+   auto req_sz_in_u64 = req_sz / sizeof(uint64_t) + 1;
+-  uint64_t req_buf[req_sz_in_u64] = {};
++  uint64_t req_buf[req_sz_in_u64];
++  std::memset(req_buf, 0, req_sz_in_u64 * sizeof(uint64_t));
+   auto req = reinterpret_cast<amdxdna_ccmd_exec_cmd_req*>(req_buf);
+   amdxdna_ccmd_exec_cmd_rsp rsp = {};
+ 
+--- a/src/shim/hwq.cpp
++++ b/src/shim/hwq.cpp
+@@ -23,7 +23,7 @@ dump_buf_to_file(void *buf, size_t size, const std::string& 
dumpfile)
+ {
+   std::ofstream ofs(dumpfile, std::ios::out | std::ios::binary);
+   if (!ofs.is_open())
+-    shim_err(errno, "Failed to open dump file: %s", dumpfile);
++    shim_err(errno, "Failed to open dump file: %s", dumpfile.c_str());
+ 
+   for (int i = 0; i < size; i++)
+     ofs.write(reinterpret_cast<char *>(buf) + i, 1);
+@@ -42,7 +42,7 @@ dump_arg_bos(const shim_xdna::cmd_buffer *cmd_bo)
+   std::error_code ec;
+   std::filesystem::create_directories(dir_path, ec);
+   if (ec)
+-    shim_err(ec.value(), "Failed to create BO dump dir: %s: %s", dir_path, 
ec.message());
++    shim_err(ec.value(), "Failed to create BO dump dir: %s: %s", 
dir_path.c_str(), ec.message().c_str());
+ 
+   std::string filename = "exec_buf.";
+   filename += std::to_string(cmd_bo->id().handle);

diff --git a/dev-libs/xrt-xdna/metadata.xml b/dev-libs/xrt-xdna/metadata.xml
new file mode 100644
index 0000000000..4da01f273c
--- /dev/null
+++ b/dev-libs/xrt-xdna/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Sv. Lockal</name>
+       </maintainer>
+       <upstream>
+               <bugs-to>https://github.com/amd/xdna-driver/issues</bugs-to>
+               <remote-id type="github">amd/xdna-driver</remote-id>
+       </upstream>
+</pkgmetadata>
\ No newline at end of file

diff --git a/dev-libs/xrt-xdna/xrt-xdna-202610.2.21.21.ebuild 
b/dev-libs/xrt-xdna/xrt-xdna-202610.2.21.21.ebuild
new file mode 100644
index 0000000000..c843b08cb6
--- /dev/null
+++ b/dev-libs/xrt-xdna/xrt-xdna-202610.2.21.21.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PV_HASH=09824b1cff30cd3fcb657154188e6ddab708e2ec
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake python-any-r1 linux-info
+
+declare -A submodules
+submodules["xrt"]=https://github.com/Xilinx/XRT.git@f848f6f093a174bbbe82b8a9b7fe44ff91295661
+submodules["xrt/src/runtime_src/aie-rt"]=https://github.com/Xilinx/aie-rt.git@a8b0667133ea2851ce27793a1796c5968226d9af
+submodules["xrt/src/runtime_src/core/common/aiebu"]=https://github.com/Xilinx/aiebu.git@9065273e0c0a4ac5930fff904ac245cf38dd3087
+submodules["xrt/src/runtime_src/core/common/elf"]=https://github.com/serge1/ELFIO.git@f849001fc229c2598f8557e0df22866af194ef98
+
+DESCRIPTION="Runtime for AIE and FPGA based platforms"
+HOMEPAGE="https://github.com/amd/xdna-driver";
+
+VTD_HASH=5f7fec23620be7a3984c8970bc514f0faa2b2ee3
+
+if [[ ${PV} == 999999 ]] ; then
+       EGIT_REPO_URI="https://github.com/amd/xdna-driver.git";
+       EGIT_SUBMODULES=(
+               xrt
+               xrt/src/runtime_src/aie-rt
+               xrt/src/runtime_src/core/common/aiebu
+               xrt/src/runtime_src/core/common/elf
+       )
+       inherit git-r3
+else
+       SRC_URI="
+               https://github.com/amd/xdna-driver/archive/${PV_HASH}.tar.gz -> 
${P}.tar.gz
+       "
+       for k in "${!submodules[@]}"; do
+               git_url="${submodules[$k]%@*}"
+               commit_hash="${submodules[$k]#*@}"
+               url_prefix="${git_url%.git}"
+               SRC_URI+=" ${url_prefix}/archive/${commit_hash}.tar.gz -> 
${url_prefix##*/}-${commit_hash:0:8}.tar.gz";
+       done
+
+       KEYWORDS="~amd64"
+       S="${WORKDIR}/xdna-driver-${PV_HASH}"
+fi
+
+SRC_URI+="
+       
https://github.com/Xilinx/VTD/raw/${VTD_HASH}/archive/strx/xrt_smi_strx.a -> 
xrt_smi_strx-${VTD_HASH:0:8}.a
+       https://github.com/Xilinx/VTD/raw/${VTD_HASH}/archive/phx/xrt_smi_phx.a 
-> xrt_smi_phx-${VTD_HASH:0:8}.a
+"
+
+LICENSE="AMD-Binary-Only"
+SLOT="0"
+
+RESTRICT="bindist mirror strip"
+
+RDEPEND="
+       dev-util/xrt
+       sys-apps/util-linux
+"
+
+# Mostly thowaway dependencies, not actually used in final lib...
+DEPEND="
+       sys-apps/util-linux
+       dev-debug/systemtap
+       dev-libs/boost
+       dev-libs/opencl-icd-loader
+       dev-libs/rapidjson
+       dev-util/opencl-headers
+       x11-libs/libdrm
+"
+
+BDEPEND="
+       ${PYTHON_DEPS}
+       $(python_gen_any_dep "
+               dev-python/pybind11[\${PYTHON_USEDEP}]
+       ")
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0_p20251025-fix-clang.patch
+)
+
+CONFIG_CHECK="~AMD_IOMMU ~DRM_ACCEL"
+
+python_check_deps() {
+       python_has_version -b "dev-python/pybind11[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+       if [[ ${PV} != 999999 ]] ; then
+               for k in $(printf '%s\n' "${!submodules[@]}" | sort); do
+                       git_url="${submodules[$k]%@*}"
+                       commit_hash="${submodules[$k]#*@}"
+                       url_prefix="${git_url%.git}"
+                       rm -r "$k" || die
+                       ln -s "${WORKDIR}/${url_prefix##*/}-${commit_hash}" 
"$k" || die
+               done
+       fi
+
+       # Check for new versions and live ebuild
+       local actual_vtd_hash=$(grep -oP 'VTD/raw/\K[0-9a-f]+' CMake/pkg.cmake 
| head -n1)
+       [[ "${actual_vtd_hash}" == "" ]] && die "Failed to extract VTD hash"
+       [[ "${actual_vtd_hash}" != "${VTD_HASH}" ]] && \
+               die "VTD hash mismatch, ebuild requested ${VTD_HASH} while 
package wants ${actual_vtd_hash}"
+
+       mkdir deps || die
+       cp "${DISTDIR}/xrt_smi_strx-${VTD_HASH:0:8}.a" deps/xrt_smi_strx.a || 
die
+       cp "${DISTDIR}/xrt_smi_phx-${VTD_HASH:0:8}.a" deps/xrt_smi_phx.a || die
+
+       sed -e "/Unknown Linux package flavor/d" -i "CMake/pkg.cmake" || die
+
+       sed -e "s/set (XRT_UPSTREAM 0)/set (XRT_UPSTREAM 1)/" -i 
xrt/src/CMake/settings.cmake || die
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
+               -DCMAKE_INSTALL_PREFIX="${EPREFIX}"/usr
+               -DSKIP_KMOD=1
+               -DUMQ_HELLO_TEST=n
+
+               -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+               -DFETCHCONTENT_SOURCE_DIR_VTD_STRX_ARCHIVE="${S}/deps"
+               -DFETCHCONTENT_SOURCE_DIR_VTD_PHX_ARCHIVE="${S}/deps"
+               -DPython3_EXECUTABLE="${PYTHON}"
+               -Wno-dev
+       )
+       [[ ${PV} != 999999 ]] && mycmakeargs+=( 
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON )
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       # belongs to dev-util/xrt
+       rm -rf "${ED}/bins" || die
+}

diff --git a/dev-libs/xrt-xdna/xrt-xdna-999999.ebuild 
b/dev-libs/xrt-xdna/xrt-xdna-999999.ebuild
new file mode 100644
index 0000000000..02d1a6d6b6
--- /dev/null
+++ b/dev-libs/xrt-xdna/xrt-xdna-999999.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PV_HASH=09824b1cff30cd3fcb657154188e6ddab708e2ec
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit cmake python-any-r1 linux-info
+
+declare -A submodules
+submodules["xrt"]=https://github.com/Xilinx/XRT.git@e2ce7d539b6974c7b39620ce1cda2851c9abca5a
+submodules["xrt/src/runtime_src/aie-rt"]=https://github.com/Xilinx/aie-rt.git@a8b0667133ea2851ce27793a1796c5968226d9af
+submodules["xrt/src/runtime_src/core/common/aiebu"]=https://github.com/Xilinx/aiebu.git@9065273e0c0a4ac5930fff904ac245cf38dd3087
+submodules["xrt/src/runtime_src/core/common/elf"]=https://github.com/serge1/ELFIO.git@f849001fc229c2598f8557e0df22866af194ef98
+
+DESCRIPTION="Runtime for AIE and FPGA based platforms"
+HOMEPAGE="https://github.com/amd/xdna-driver";
+
+VTD_HASH=5f7fec23620be7a3984c8970bc514f0faa2b2ee3
+
+if [[ ${PV} == 999999 ]] ; then
+       EGIT_REPO_URI="https://github.com/amd/xdna-driver.git";
+       EGIT_SUBMODULES=(
+               xrt
+               xrt/src/runtime_src/aie-rt
+               xrt/src/runtime_src/core/common/aiebu
+               xrt/src/runtime_src/core/common/elf
+       )
+       inherit git-r3
+else
+       SRC_URI="
+               https://github.com/amd/xdna-driver/archive/${PV_HASH}.tar.gz -> 
${P}.tar.gz
+       "
+       for k in "${!submodules[@]}"; do
+               git_url="${submodules[$k]%@*}"
+               commit_hash="${submodules[$k]#*@}"
+               url_prefix="${git_url%.git}"
+               SRC_URI+=" ${url_prefix}/archive/${commit_hash}.tar.gz -> 
${url_prefix##*/}-${commit_hash:0:8}.tar.gz";
+       done
+
+       KEYWORDS="~amd64"
+       S="${WORKDIR}/xdna-driver-${PV_HASH}"
+fi
+
+SRC_URI+="
+       
https://github.com/Xilinx/VTD/raw/${VTD_HASH}/archive/strx/xrt_smi_strx.a -> 
xrt_smi_strx-${VTD_HASH:0:8}.a
+       https://github.com/Xilinx/VTD/raw/${VTD_HASH}/archive/phx/xrt_smi_phx.a 
-> xrt_smi_phx-${VTD_HASH:0:8}.a
+"
+
+LICENSE="AMD-Binary-Only"
+SLOT="0"
+
+RESTRICT="bindist mirror strip"
+
+RDEPEND="
+       dev-util/xrt
+       sys-apps/util-linux
+"
+
+# Mostly thowaway dependencies, not actually used in final lib...
+DEPEND="
+       sys-apps/util-linux
+       dev-debug/systemtap
+       dev-libs/boost
+       dev-libs/opencl-icd-loader
+       dev-libs/rapidjson
+       dev-util/opencl-headers
+       x11-libs/libdrm
+"
+
+BDEPEND="
+       ${PYTHON_DEPS}
+       $(python_gen_any_dep "
+               dev-python/pybind11[\${PYTHON_USEDEP}]
+       ")
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0_p20251025-fix-clang.patch
+)
+
+CONFIG_CHECK="~AMD_IOMMU ~DRM_ACCEL"
+
+python_check_deps() {
+       python_has_version -b "dev-python/pybind11[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+       if [[ ${PV} != 999999 ]] ; then
+               for k in $(printf '%s\n' "${!submodules[@]}" | sort); do
+                       git_url="${submodules[$k]%@*}"
+                       commit_hash="${submodules[$k]#*@}"
+                       url_prefix="${git_url%.git}"
+                       rm -r "$k" || die
+                       ln -s "${WORKDIR}/${url_prefix##*/}-${commit_hash}" 
"$k" || die
+               done
+       fi
+
+       # Check for new versions and live ebuild
+       local actual_vtd_hash=$(grep -oP 'VTD/raw/\K[0-9a-f]+' CMake/pkg.cmake 
| head -n1)
+       [[ "${actual_vtd_hash}" == "" ]] && die "Failed to extract VTD hash"
+       [[ "${actual_vtd_hash}" != "${VTD_HASH}" ]] && \
+               die "VTD hash mismatch, ebuild requested ${VTD_HASH} while 
package wants ${actual_vtd_hash}"
+
+       mkdir deps || die
+       cp "${DISTDIR}/xrt_smi_strx-${VTD_HASH:0:8}.a" deps/xrt_smi_strx.a || 
die
+       cp "${DISTDIR}/xrt_smi_phx-${VTD_HASH:0:8}.a" deps/xrt_smi_phx.a || die
+
+       sed -e "/Unknown Linux package flavor/d" -i "CMake/pkg.cmake" || die
+
+       sed -e "s/set (XRT_UPSTREAM 0)/set (XRT_UPSTREAM 1)/" -i 
xrt/src/CMake/settings.cmake || die
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
+               -DCMAKE_INSTALL_PREFIX="${EPREFIX}"/usr
+               -DSKIP_KMOD=1
+               -DUMQ_HELLO_TEST=n
+
+               -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+               -DFETCHCONTENT_SOURCE_DIR_VTD_STRX_ARCHIVE="${S}/deps"
+               -DFETCHCONTENT_SOURCE_DIR_VTD_PHX_ARCHIVE="${S}/deps"
+               -DPython3_EXECUTABLE="${PYTHON}"
+               -Wno-dev
+       )
+       [[ ${PV} != 999999 ]] && mycmakeargs+=( 
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON )
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       # belongs to dev-util/xrt
+       rm -rf "${ED}/bins" || die
+}

Reply via email to