commit: b470b99cd8a151f986e911361fc8fd562f220d3b Author: Sasha Finkelstein <fnkl.kernel <AT> gmail <DOT> com> AuthorDate: Thu May 1 12:34:58 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Jun 8 12:02:49 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b470b99c
app-emulation/fex-xtajit: New package, add 2506 Signed-off-by: Sasha Finkelstein <fnkl.kernel <AT> gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/42493 Signed-off-by: Sam James <sam <AT> gentoo.org> app-emulation/fex-xtajit/Manifest | 6 ++ app-emulation/fex-xtajit/fex-xtajit-2506.ebuild | 115 +++++++++++++++++++++ .../files/fex-xtajit-2506-constness.patch | 13 +++ app-emulation/fex-xtajit/metadata.xml | 10 ++ 4 files changed, 144 insertions(+) diff --git a/app-emulation/fex-xtajit/Manifest b/app-emulation/fex-xtajit/Manifest new file mode 100644 index 000000000000..c99148764f29 --- /dev/null +++ b/app-emulation/fex-xtajit/Manifest @@ -0,0 +1,6 @@ +DIST FEX-2506.tar.gz 2141240 BLAKE2B 330cc352d4dfc64605e04c69aef9e6dfa60fe8ac1123b4c759c766c492e22eddd2f27869d369bfe738d90cb73dfed7aa199c684442693625c518d1fb3be58e14 SHA512 13eba3a90766bf81ac0d818ebfed99bff39fb6d41d4ea042606b66e645d8cadda03fafae13947634df619c32f943e991c17da6139ea9019e228d05b47ecea7fd +DIST cpp-optparse-9f94388a339fcbb0bc95c17768eb786c85988f6e.tar.gz 13218 BLAKE2B 8a9857b639509d66e59732e3cf84879da6eb714f48d55fe2e00c7ee3e5ae2e0be093eeb1b004b6d070766f5fedfd4173f11f6205a961f9e65bfa7848eb225024 SHA512 600559354c8a3e233f7d2d855a8325b747b6656eb05fe13b3fae31f7f41154968b995bc3a519b0c61e5db904d4bca4cb17eb72a2f35a1a273e275ec34593b92f +DIST fmt-123913715afeb8a437e6388b4473fcc4753e1c9a.tar.gz 704027 BLAKE2B cfedab4c5eb083f6cc1b207d832e26f5efe50be740cbfa9cf63810bdbb447c6d1496ab0977c6f78d71389dedc5b4c663be852724838b7789bf7e9b4be90ea692 SHA512 730a597be2e31fcd887b6f46f775d02163b0206016b9c0270fe183af37fd7268d9f2d9553c7b25b7df526d464c6f59750e542e6907d677d7181b388817135515 +DIST jemalloc-02ca52b5fefc0ccd0d2c4eaa1d17989cdd641927.tar.gz 847982 BLAKE2B 7676066b106af133bb7dab4518aa63fe10341cf86175f8ed664b4850f240535c2107698876e9406a0f36e312f89cdb6785393e3883c212fd9cba3031047814ce SHA512 b15e1fdcff9f593dbaca88337a2ab784cb66491ef8794f72fbf67617c1f396c57ba1664deb53fa18e5c21a4bd777809ae4c03b1ce48f6e80ccabbcbd7668651d +DIST robin-map-d5683d9f1891e5b04e3e3b2192b5349dc8d814ea.tar.gz 70652 BLAKE2B 03ca6c6c333661ece0ac818d43eee37ead3e0a0acb71c45df201bff30715db89b8f2be3f5bac0991379327f2fac4273ba1bd3d6c4102e5a472a7c7567fae4651 SHA512 23fe18c7d2dda9bc4216201a7e5935c8dc9f51066173e95d514360e3310c994c4dc7786a33f43cb7d15dcceb913375a48b8c02529eacde58c0a80f0e91e9b94d +DIST xxhash-bbb27a5efb85b92a0486cf361a8635715a53f6ba.tar.gz 1141344 BLAKE2B 74a71b61656fd6181506aea67c1f25d699f1d5eb29e643b3ff7ecd5b641ab7dc3e19dad5371c1e7867316261f797a8d699b3de9236c80fb536ee1d793454cfda SHA512 fc53b5461d5560a600c78145aa645cf20ec112216efefa98ae2c9e4f480ea3723930abacee825aadbdcd9b3712963d20da17ccc8f3ceb885c9c05647c9e817fc diff --git a/app-emulation/fex-xtajit/fex-xtajit-2506.ebuild b/app-emulation/fex-xtajit/fex-xtajit-2506.ebuild new file mode 100644 index 000000000000..8a8a6bcdc2e2 --- /dev/null +++ b/app-emulation/fex-xtajit/fex-xtajit-2506.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic ninja-utils toolchain-funcs + +DESCRIPTION="A wine emulation dll for running x86 application on an arm64 host" +HOMEPAGE="https://fex-emu.com" + +JEMALLOC_HASH="02ca52b5fefc0ccd0d2c4eaa1d17989cdd641927" +CPP_OPTPARSE_HASH="9f94388a339fcbb0bc95c17768eb786c85988f6e" +ROBIN_MAP_HASH="d5683d9f1891e5b04e3e3b2192b5349dc8d814ea" +FMT_HASH="123913715afeb8a437e6388b4473fcc4753e1c9a" +XXHASH_HASH="bbb27a5efb85b92a0486cf361a8635715a53f6ba" + +SRC_URI=" + https://github.com/FEX-Emu/jemalloc/archive/${JEMALLOC_HASH}.tar.gz -> jemalloc-${JEMALLOC_HASH}.tar.gz + https://github.com/Sonicadvance1/cpp-optparse/archive/${CPP_OPTPARSE_HASH}.tar.gz -> cpp-optparse-${CPP_OPTPARSE_HASH}.tar.gz + https://github.com/FEX-Emu/robin-map/archive/${ROBIN_MAP_HASH}.tar.gz -> robin-map-${ROBIN_MAP_HASH}.tar.gz + https://github.com/Cyan4973/xxHash/archive/${XXHASH_HASH}.tar.gz -> xxhash-${XXHASH_HASH}.tar.gz + https://github.com/fmtlib/fmt/archive/${FMT_HASH}.tar.gz -> fmt-${FMT_HASH}.tar.gz + https://github.com/FEX-Emu/FEX/archive/refs/tags/FEX-${PV}.tar.gz +" + +S="${WORKDIR}/FEX-FEX-${PV}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="-* ~arm64" +BDEPEND=" + dev-build/cmake + dev-util/llvm-mingw64 + llvm-core/clang + llvm-core/llvm +" + +PATCHES=" + ${FILESDIR}/${P}-constness.patch +" + +src_unpack() { + default + local -A deps=( + jemalloc "jemalloc-${JEMALLOC_HASH}" + robin-map "robin-map-${ROBIN_MAP_HASH}" + xxhash "xxHash-${XXHASH_HASH}" + fmt "fmt-${FMT_HASH}" + ) + for dep in "${!deps[@]}"; do + rmdir "${S}/External/${dep}" || die + mv "${WORKDIR}/${deps[${dep}]}" "${S}/External/${dep}" + done + rmdir "${S}/Source/Common/cpp-optparse" || die + mv "${WORKDIR}/cpp-optparse-${CPP_OPTPARSE_HASH}" "${S}/Source/Common/cpp-optparse" || die +} + +src_configure() { + PATH="${BROOT}/usr/lib/llvm-mingw64/bin:${PATH}" + CHOST=aarch64-w64-mingw32 + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + LD=${CHOST}-clang + AR=llvm-ar + NM=llvm-nm + RANLIB=llvm-ranlib + STRIP=llvm-strip + RC=${CHOST}-windres + KERNEL=Winnt + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + strip-flags + filter-lto + filter-flags '-fuse-ld=*' + strip-unsupported-flags + + mkdir "${WORKDIR}/build" || die + pushd "${WORKDIR}/build" >/dev/null || die + cmake -GNinja \ + -DCMAKE_C_COMPILER_WORKS=1 \ + -DCMAKE_CXX_COMPILER_WORKS=1 \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_TOOLCHAIN_FILE="${S}/toolchain_mingw.cmake" \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib/fex-xtajit \ + -DENABLE_LTO=False \ + -DMINGW_TRIPLE=aarch64-w64-mingw32 \ + -DBUILD_TESTS=False \ + -DENABLE_JEMALLOC_GLIBC_ALLOC=False \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DENABLE_CCACHE=FALSE \ + -DBUILD_FEXCONFIG=FALSE \ + -DMINGW_BUILD=1 \ + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ + "${S}" || die + popd >/dev/null || die +} + +src_compile() { + pushd "${WORKDIR}/build" >/dev/null || die + eninja + popd >/dev/null || die +} + +src_install() { + pushd "${WORKDIR}/build" >/dev/null || die + DESTDIR="${D}" eninja install + popd >/dev/null || die + rm -r "${ED}/usr/"{include,share} || die +} + +pkg_postinst() { + elog "If you had already created a wine prefix, run wineboot -u" + elog "to install x86 emulation support, or update it's local copy" + elog "of the relevant files." +} diff --git a/app-emulation/fex-xtajit/files/fex-xtajit-2506-constness.patch b/app-emulation/fex-xtajit/files/fex-xtajit-2506-constness.patch new file mode 100644 index 000000000000..2fd416899841 --- /dev/null +++ b/app-emulation/fex-xtajit/files/fex-xtajit-2506-constness.patch @@ -0,0 +1,13 @@ +diff --git a/Source/Windows/Common/CRT/String.cpp b/Source/Windows/Common/CRT/String.cpp +index dab3cb8..ea0e028 100644 +--- a/Source/Windows/Common/CRT/String.cpp ++++ b/Source/Windows/Common/CRT/String.cpp +@@ -187,7 +187,7 @@ DLLEXPORT_FUNC(int, _isctype, (int _C, int _Type)) { + UNIMPLEMENTED(); + } + +-DLLEXPORT_FUNC(const unsigned short*, __pctype_func, (void)) { ++DLLEXPORT_FUNC(unsigned short*, __pctype_func, (void)) { + return CTypeData; + } + diff --git a/app-emulation/fex-xtajit/metadata.xml b/app-emulation/fex-xtajit/metadata.xml new file mode 100644 index 000000000000..692de53f5916 --- /dev/null +++ b/app-emulation/fex-xtajit/metadata.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>[email protected]</email> +</maintainer> +<upstream> + <remote-id type="github">FEX-Emu/FEX</remote-id> +</upstream> +</pkgmetadata>
