commit: 6c17167525276f5db12551062d75c69bc391798a Author: Sasha Finkelstein <fnkl.kernel <AT> gmail <DOT> com> AuthorDate: Thu Jan 8 13:20:17 2026 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat Jan 17 18:27:30 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c171675
app-emulation/fex-xtajit: Add 2601 Signed-off-by: Sasha Finkelstein <fnkl.kernel <AT> gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/45290 Closes: https://github.com/gentoo/gentoo/pull/45290 Signed-off-by: Sam James <sam <AT> gentoo.org> app-emulation/fex-xtajit/Manifest | 2 + app-emulation/fex-xtajit/fex-xtajit-2601.ebuild | 154 ++++++++++++++++++++++++ 2 files changed, 156 insertions(+) diff --git a/app-emulation/fex-xtajit/Manifest b/app-emulation/fex-xtajit/Manifest index 6fbb751b410b..e9355bc86b4a 100644 --- a/app-emulation/fex-xtajit/Manifest +++ b/app-emulation/fex-xtajit/Manifest @@ -3,11 +3,13 @@ DIST FEX-2507.1.tar.gz 2178185 BLAKE2B b0086f34489edc56cd4cb3dfef53ee9f6acbf544f DIST FEX-2509.tar.gz 2206146 BLAKE2B 72a7e16ce60c262a58433d60db33aece016b866b443cc9b430a11d1bd09679e4e326d17fb34f296243246d0a02d14fc88b5018981b474f9fad821a68b58b596a SHA512 8de6531178a4ea41588730a3983c1707037067fac330b86c754810b0db3c40e8e75424da01651dd4fa8927bfe524312fbf383e444c725ce4e7c6b61d0ee651a7 DIST FEX-2510.tar.gz 2291211 BLAKE2B 5161dd0d02cc8d850a1b94a0d3ca3928d13d56e0c1fad4dc7cfec36e32ceff7e3e7e37522a4c2c31cbcf37c134ead31192bebb8e58508405379d7b26f879c33a SHA512 0e906af106593e648144dd6d6dfb1266ad7210bf480798c940de7dd7aba02ef9ac9d1bda9285bf4c612b4503c630ca94af37130ea8cc2ab8a01e5f01f3a61472 DIST FEX-2512.tar.gz 2314078 BLAKE2B 4130c7e97ec45689cbc5ffcd372f4c84c6c15757bd6e2380dd15f33c7117572c4a4a7665eb3a59a45085431b459885c0bb273ff170c725d94049a548ca1cc4e2 SHA512 1cbf2d75120915f53d3e22e85684b040cb694dd96e8bb77141e0ad85f9165b8fc606b89736c0df13476b981ae6ab9513770672d27057962e7336b0b3693c1ab2 +DIST FEX-2601.tar.gz 2332430 BLAKE2B 27f99d018e63aa137c73b3cb55007c66353f14fe69639964bbf4ac2db2c049cf32a6fae4e73d523ba46c7c514bda7c8a7a37a50251eb5f4482a5d8f3dd331049 SHA512 7aea0ee09d331c030a7948234500de34145882ea74fd3283c458002202fac5b1ac02d811d7d20fd4dc68752f7afc7b41810097a52fbac6971f05c0569de3e949 DIST cpp-optparse-9f94388a339fcbb0bc95c17768eb786c85988f6e.tar.gz 13218 BLAKE2B 8a9857b639509d66e59732e3cf84879da6eb714f48d55fe2e00c7ee3e5ae2e0be093eeb1b004b6d070766f5fedfd4173f11f6205a961f9e65bfa7848eb225024 SHA512 600559354c8a3e233f7d2d855a8325b747b6656eb05fe13b3fae31f7f41154968b995bc3a519b0c61e5db904d4bca4cb17eb72a2f35a1a273e275ec34593b92f DIST fmt-123913715afeb8a437e6388b4473fcc4753e1c9a.tar.gz 704027 BLAKE2B cfedab4c5eb083f6cc1b207d832e26f5efe50be740cbfa9cf63810bdbb447c6d1496ab0977c6f78d71389dedc5b4c663be852724838b7789bf7e9b4be90ea692 SHA512 730a597be2e31fcd887b6f46f775d02163b0206016b9c0270fe183af37fd7268d9f2d9553c7b25b7df526d464c6f59750e542e6907d677d7181b388817135515 DIST fmt-20c8fdad0605a1627a3f6d15cad693a3fbe2ecbf.tar.gz 707692 BLAKE2B 43ceb50d81fa925b71a139bf3d84638d909209b681ba5f86d74c77f3c1cb93b2ab2b3c3b32065fd534fb0dbfd0c08430d7144db846ed7c7055959614739ed938 SHA512 f4f320d2689205fc94db905af5338a72c357f96834b07492b4816709a98861956675bfc3ab865066c4a66e5e3ac88414ab3551d437a6d73a2da7fdd3fe70b44d DIST fmt-407c905e45ad75fc29bf0f9bb7c5c2fd3475976f.tar.gz 711737 BLAKE2B 0b9d8d8077c6d0ba53ce6188bf8bc4623657d9c17bca6bfe756c2cf5c9a0f33756b2f435c977a7a93e2fdbeefce46fa5d8797a5a042b8059e1698b0223ede3d2 SHA512 90d92dc436be1b79263722a4677458c077e78f862bb41070dc4df65019b6ac03df52b1354213b4a11d5edf24a1bbf0f96ef28b52ca6abf23535bbf5b9f7f5af9 DIST jemalloc-02ca52b5fefc0ccd0d2c4eaa1d17989cdd641927.tar.gz 847982 BLAKE2B 7676066b106af133bb7dab4518aa63fe10341cf86175f8ed664b4850f240535c2107698876e9406a0f36e312f89cdb6785393e3883c212fd9cba3031047814ce SHA512 b15e1fdcff9f593dbaca88337a2ab784cb66491ef8794f72fbf67617c1f396c57ba1664deb53fa18e5c21a4bd777809ae4c03b1ce48f6e80ccabbcbd7668651d +DIST jemalloc-97d986993dc735a2022856e7e9fdfa1180e8527a.tar.gz 847985 BLAKE2B 0dd648be3ec3d961e964c90490f364d2ffc4aa2949341c86332e51dde804d8c5a5a4d82a57bf0282534682d67206e6341a5f47ea082184a9a0031a78f4dfcf76 SHA512 adb7af47bdc5bde9b67946a98235010415c463af0679e40bdf032aabb019403345ff5b699d24d46087bfbc5c4ad47a3b7a466c595d4df1e344293bd321753a21 DIST jemalloc-ce24593018ca5d5af7e5661ceda9744e02b59f8f.tar.gz 847968 BLAKE2B 704b955dba18b154d46ae4c741d36bccd54d9f34d61ca4519d8247f558e6e9a83309facc1f71745f2524f2d52d03a4ca4db69a1bd19933e4bd5393d366f0ab3d SHA512 6152af0cc312c1583daaea06f99347d57a43628a6243854885bd9e769f98c5e75b537882aa9e79d49e5a4a16dcbf85513c939d5dd6425fb6492ea08bc04f1342 DIST range-v3-ca1388fb9da8e69314dda222dc7b139ca84e092f.tar.gz 585661 BLAKE2B 6955643b9d569b101079c41154cd293d12a0b197078cf03376abd4555f9ff64b7c4e755a583a517c82f64a590bdc38a6d332a43ccd42e636057917754c75138a SHA512 6a151236845d9758555be81640dba773abf90c2ee6410d3eadbdc7d993bbedcd359251c334a3fa20eb6148aa3d357e036ae5d94337a6837fd4ae09c3b842da9d DIST robin-map-d5683d9f1891e5b04e3e3b2192b5349dc8d814ea.tar.gz 70652 BLAKE2B 03ca6c6c333661ece0ac818d43eee37ead3e0a0acb71c45df201bff30715db89b8f2be3f5bac0991379327f2fac4273ba1bd3d6c4102e5a472a7c7567fae4651 SHA512 23fe18c7d2dda9bc4216201a7e5935c8dc9f51066173e95d514360e3310c994c4dc7786a33f43cb7d15dcceb913375a48b8c02529eacde58c0a80f0e91e9b94d diff --git a/app-emulation/fex-xtajit/fex-xtajit-2601.ebuild b/app-emulation/fex-xtajit/fex-xtajit-2601.ebuild new file mode 100644 index 000000000000..0b3cd4084d9e --- /dev/null +++ b/app-emulation/fex-xtajit/fex-xtajit-2601.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2026 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="97d986993dc735a2022856e7e9fdfa1180e8527a" +CPP_OPTPARSE_HASH="9f94388a339fcbb0bc95c17768eb786c85988f6e" +ROBIN_MAP_HASH="d5683d9f1891e5b04e3e3b2192b5349dc8d814ea" +FMT_HASH="407c905e45ad75fc29bf0f9bb7c5c2fd3475976f" +XXHASH_HASH="e626a72bc2321cd320e953a0ccf1584cad60f363" +RANGE_V3_HASH="ca1388fb9da8e69314dda222dc7b139ca84e092f" + +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/ericniebler/range-v3/archive/${RANGE_V3_HASH}.tar.gz -> range-v3-${RANGE_V3_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" +IUSE="+wow64 +arm64ec" +REQUIRED_USE="|| ( wow64 arm64ec )" + +BDEPEND=" + arm64ec? ( dev-util/llvm-mingw64[arm64ec-pe(-)] ) + dev-build/cmake + >=dev-util/llvm-mingw64-13.0.0 + llvm-core/clang + llvm-core/llvm +" + +pkg_setup() { + HOSTS=( + $(usev wow64 aarch64-w64-mingw32) + $(usev arm64ec arm64ec-w64-mingw32) + ) +} + +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}" + range-v3 "range-v3-${RANGE_V3_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() { + for CHOST in ${HOSTS[@]}; do + ( + setup_env + per_host_src_configure + ) + done +} + +setup_env() { + PATH="${BROOT}/usr/lib/llvm-mingw64/bin:${PATH}" + 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 +} + +per_host_src_configure() { + mkdir "${WORKDIR}/${CHOST}-build" || die + pushd "${WORKDIR}/${CHOST}-build" >/dev/null || die + cmake -GNinja \ + -DCMAKE_C_COMPILER_WORKS=1 \ + -DCMAKE_CXX_COMPILER_WORKS=1 \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_TOOLCHAIN_FILE="${S}/Data/CMake/toolchain_mingw.cmake" \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib/fex-xtajit \ + -DENABLE_LTO=False \ + -DMINGW_TRIPLE=${CHOST} \ + -DBUILD_TESTING=False \ + -DENABLE_JEMALLOC_GLIBC_ALLOC=False \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DENABLE_CCACHE=FALSE \ + -DBUILD_FEXCONFIG=FALSE \ + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ + -DCMAKE_DISABLE_FIND_PACKAGE_fmt=true \ + -DCMAKE_DISABLE_FIND_PACKAGE_range-v3=true \ + "${S}" || die + popd >/dev/null || die +} + +src_compile() { + for CHOST in ${HOSTS[@]}; do + ( + setup_env + per_host_src_compile + ) + done +} + +per_host_src_compile() { + pushd "${WORKDIR}/${CHOST}-build" >/dev/null || die + eninja + popd >/dev/null || die +} + +src_install() { + for CHOST in ${HOSTS[@]}; do + ( + setup_env + per_host_src_install + ) + done +} + +per_host_src_install() { + pushd "${WORKDIR}/${CHOST}-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." +}
