commit:     d6f6c5aec42cb6f93d5e3c8d47f0906e2ab2a04a
Author:     Sasha Finkelstein <fnkl.kernel <AT> gmail <DOT> com>
AuthorDate: Thu Mar  5 11:52:01 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Mar  7 01:19:16 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6f6c5ae

app-emulation/fex-xtajit: Add 2603

Signed-off-by: Sasha Finkelstein <fnkl.kernel <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/45894
Closes: https://github.com/gentoo/gentoo/pull/45894
Signed-off-by: Sam James <sam <AT> gentoo.org>

 app-emulation/fex-xtajit/Manifest               |   3 +
 app-emulation/fex-xtajit/fex-xtajit-2603.ebuild | 153 ++++++++++++++++++++++++
 2 files changed, 156 insertions(+)

diff --git a/app-emulation/fex-xtajit/Manifest 
b/app-emulation/fex-xtajit/Manifest
index e9355bc86b4a..5df874a320e6 100644
--- a/app-emulation/fex-xtajit/Manifest
+++ b/app-emulation/fex-xtajit/Manifest
@@ -4,6 +4,7 @@ DIST FEX-2509.tar.gz 2206146 BLAKE2B 
72a7e16ce60c262a58433d60db33aece016b866b443
 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 FEX-2603.tar.gz 2353841 BLAKE2B 
e54da24a7fc3769efd5263aaed3c1f7a98395ea71da258b563cffd6d728928edc0efe7d27784c28376504c8236f10368dd9ae539be748063e1e0f7fabb3d50cd
 SHA512 
384f80f9f6cc714f7ebb812a7a4805df68b2be4edd658690a60c3ef2ee220fea164b94ee2846a8bdf7f71c8dd5023b25ce51f72891ce9d964005ea4377947e1a
 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
@@ -13,5 +14,7 @@ DIST jemalloc-97d986993dc735a2022856e7e9fdfa1180e8527a.tar.gz 
847985 BLAKE2B 0dd
 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
+DIST rpmalloc-1f6fb494f2a4237c35494786a3c8f1eba048b217.tar.gz 76365 BLAKE2B 
30d194b71f6462ef0b99a67eb068b46aea1f8305be253ba5aba883c5a7954fbc8fe4853b5f86d6c72ded3e87ba2fe5b86ff53a93ea902001e9234ffea72d03d8
 SHA512 
d9de7ce8ca2608fbf0db0c398bb6d06d1585837cee668918ce361cfbde689c9608593666e570e32c83cc1e535184a27739a7aab3c6bdd45dde4821a3e1524ef1
+DIST unordered_dense-3234af2c03549bc85656bfd3a86993bf1cd8aef1.tar.gz 914070 
BLAKE2B 
d6ebb2af2a523b096abb64adeb8ac273f32d0ae31c15a97480674473a464e768aadcefd963a2c184cf18c626d6f0bc9431d13fee11a9edf23c65c7b9d3a49c9d
 SHA512 
67f44a62d0a32b99d42c94f204eb995effbb39f374494e992bcea1c7b9b29df5376129aec9f87868df48ddf706f44cf4f2cffc2a928f667057e418aed8d56626
 DIST xxhash-bbb27a5efb85b92a0486cf361a8635715a53f6ba.tar.gz 1141344 BLAKE2B 
74a71b61656fd6181506aea67c1f25d699f1d5eb29e643b3ff7ecd5b641ab7dc3e19dad5371c1e7867316261f797a8d699b3de9236c80fb536ee1d793454cfda
 SHA512 
fc53b5461d5560a600c78145aa645cf20ec112216efefa98ae2c9e4f480ea3723930abacee825aadbdcd9b3712963d20da17ccc8f3ceb885c9c05647c9e817fc
 DIST xxhash-e626a72bc2321cd320e953a0ccf1584cad60f363.tar.gz 1147772 BLAKE2B 
b96ef9287863cf01d36e73c418f4d2045d00e5d0f26a4e2a73c029cd1e627599e4ff8e5182cfc29e68035b539cecb2d5a0e36abec959685b166d9f216074b086
 SHA512 
eae9f72abc0bf8fa2cf7087411fd42c2e4640f7f4787bb080d65894e83db8dc78203502bbad6a08c662477e69dc8b93364f9360bf1cd8c2b87deb6cd9440ff4d

diff --git a/app-emulation/fex-xtajit/fex-xtajit-2603.ebuild 
b/app-emulation/fex-xtajit/fex-xtajit-2603.ebuild
new file mode 100644
index 000000000000..f0091c31ce10
--- /dev/null
+++ b/app-emulation/fex-xtajit/fex-xtajit-2603.ebuild
@@ -0,0 +1,153 @@
+# 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";
+
+RPMALLOC_HASH="1f6fb494f2a4237c35494786a3c8f1eba048b217"
+CPP_OPTPARSE_HASH="9f94388a339fcbb0bc95c17768eb786c85988f6e"
+UNORDERED_DENSE_HASH="3234af2c03549bc85656bfd3a86993bf1cd8aef1"
+FMT_HASH="407c905e45ad75fc29bf0f9bb7c5c2fd3475976f"
+XXHASH_HASH="e626a72bc2321cd320e953a0ccf1584cad60f363"
+RANGE_V3_HASH="ca1388fb9da8e69314dda222dc7b139ca84e092f"
+
+SRC_URI="
+       https://github.com/FEX-Emu/rpmalloc/archive/${RPMALLOC_HASH}.tar.gz -> 
rpmalloc-${RPMALLOC_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/martinus/unordered_dense/archive/${UNORDERED_DENSE_HASH}.tar.gz
 -> unordered_dense-${UNORDERED_DENSE_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=(
+               rpmalloc "rpmalloc-${RPMALLOC_HASH}"
+               unordered_dense "unordered_dense-${UNORDERED_DENSE_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_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."
+}

Reply via email to