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 +}
