repo/gentoo:master commit in: app-emulation/fex-xtajit/
"Matt Jolly" <[email protected]>
| Newsgroups | gmane.linux.gentoo.cvs |
|---|---|
| Message-ID | <1787096543.33c203f9a43020394a9233e17240cbd698903fef.kangie@gentoo> |
commit: 33c203f9a43020394a9233e17240cbd698903fef
Author: James Calligeros <jcalligeros99 <AT> gmail <DOT> com>
AuthorDate: Tue Aug 11 11:47:46 2026 +0000
Commit: Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Tue Aug 18 23:42:23 2026 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=33c203f9
app-emulation/fex-xtajit: add 2608
Signed-off-by: James Calligeros <jcalligeros99 <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/46678
Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>
app-emulation/fex-xtajit/Manifest | 2 +
app-emulation/fex-xtajit/fex-xtajit-2608.ebuild | 172 ++++++++++++++++++++++++
2 files changed, 174 insertions(+)
diff --git a/app-emulation/fex-xtajit/Manifest b/app-emulation/fex-xtajit/Manifest
index e418767bd262..3f2ca1cb0b70 100644
--- a/app-emulation/fex-xtajit/Manifest
+++ b/app-emulation/fex-xtajit/Manifest
@@ -2,11 +2,13 @@ DIST FEX-2601.tar.gz 2332430 BLAKE2B 27f99d018e63aa137c73b3cb55007c66353f14fe696
DIST FEX-2603.tar.gz 2353841 BLAKE2B e54da24a7fc3769efd5263aaed3c1f7a98395ea71da258b563cffd6d728928edc0efe7d27784c28376504c8236f10368dd9ae539be748063e1e0f7fabb3d50cd SHA512 384f80f9f6cc714f7ebb812a7a4805df68b2be4edd658690a60c3ef2ee220fea164b94ee2846a8bdf7f71c8dd5023b25ce51f72891ce9d964005ea4377947e1a
DIST FEX-2604.tar.gz 2373960 BLAKE2B 53934dc269e31c6e1bf9e40a14a1c7b4fe4067c5dfdb4f990274266ff16c94fca4cc39fd551ce9037cf8de5913bf1a77ac64b14e4bda3569720c6531cd80aa32 SHA512 0c94276522fa3f3fee15fc2a02888627317852baa61c8c451f8ffaa1810fb0d4deb0b4424f3a5061dda47f5368a15748d0dffcae2c34ae9be8a3cba0c19e1295
DIST FEX-2605.tar.gz 2394653 BLAKE2B 2debb3ba18187a4ec3ebec45ff960dade12a451fdf82f10d776e707187a54a6ad7b6cb680c681da0be4a48cffc8f2638aba2ef2e6ff7f1d5dc48c18e75305362 SHA512 b930960838a3baa1b70493d980a92b166e7ac0a49461617733c95b2e1d13b562c2b8ea5051bd1ca48b288f50bae3889718f8ab69130c18fdd63f22862a7a93c2
+DIST FEX-2608.tar.gz 2724491 BLAKE2B fe3bd161ca894b8185e98cfc0245019f5aa42b012fc9f24de292148fc824c151d0e6dd40e25b00a537402e48f5f692cc2e2343175e8b7020c4a009c195056013 SHA512 0559cc6fe3c9b7c2a4bbc8e6328993ecf4d4213e8bbac3cf4046c2b95fc19489d9f4b009e9a1916ce1231ce34d42934f1906ca5f2075bc278f8b1a421ba13473
DIST cpp-optparse-9f94388a339fcbb0bc95c17768eb786c85988f6e.tar.gz 13218 BLAKE2B 8a9857b639509d66e59732e3cf84879da6eb714f48d55fe2e00c7ee3e5ae2e0be093eeb1b004b6d070766f5fedfd4173f11f6205a961f9e65bfa7848eb225024 SHA512 600559354c8a3e233f7d2d855a8325b747b6656eb05fe13b3fae31f7f41154968b995bc3a519b0c61e5db904d4bca4cb17eb72a2f35a1a273e275ec34593b92f
DIST fmt-407c905e45ad75fc29bf0f9bb7c5c2fd3475976f.tar.gz 711737 BLAKE2B 0b9d8d8077c6d0ba53ce6188bf8bc4623657d9c17bca6bfe756c2cf5c9a0f33756b2f435c977a7a93e2fdbeefce46fa5d8797a5a042b8059e1698b0223ede3d2 SHA512 90d92dc436be1b79263722a4677458c077e78f862bb41070dc4df65019b6ac03df52b1354213b4a11d5edf24a1bbf0f96ef28b52ca6abf23535bbf5b9f7f5af9
DIST jemalloc-97d986993dc735a2022856e7e9fdfa1180e8527a.tar.gz 847985 BLAKE2B 0dd648be3ec3d961e964c90490f364d2ffc4aa2949341c86332e51dde804d8c5a5a4d82a57bf0282534682d67206e6341a5f47ea082184a9a0031a78f4dfcf76 SHA512 adb7af47bdc5bde9b67946a98235010415c463af0679e40bdf032aabb019403345ff5b699d24d46087bfbc5c4ad47a3b7a466c595d4df1e344293bd321753a21
DIST range-v3-ca1388fb9da8e69314dda222dc7b139ca84e092f.tar.gz 585661 BLAKE2B 6955643b9d569b101079c41154cd293d12a0b197078cf03376abd4555f9ff64b7c4e755a583a517c82f64a590bdc38a6d332a43ccd42e636057917754c75138a SHA512 6a151236845d9758555be81640dba773abf90c2ee6410d3eadbdc7d993bbedcd359251c334a3fa20eb6148aa3d357e036ae5d94337a6837fd4ae09c3b842da9d
DIST robin-map-d5683d9f1891e5b04e3e3b2192b5349dc8d814ea.tar.gz 70652 BLAKE2B 03ca6c6c333661ece0ac818d43eee37ead3e0a0acb71c45df201bff30715db89b8f2be3f5bac0991379327f2fac4273ba1bd3d6c4102e5a472a7c7567fae4651 SHA512 23fe18c7d2dda9bc4216201a7e5935c8dc9f51066173e95d514360e3310c994c4dc7786a33f43cb7d15dcceb913375a48b8c02529eacde58c0a80f0e91e9b94d
+DIST rpmalloc-1d85c246cd827ead6865f4f880d4fef53f2b1864.tar.gz 76386 BLAKE2B 5e120156304d34a419255a079c78ade53dfc91fdf9673ed66856713f65872310e3fc800819b24c5a5db48089fad35147839dfcb6b99d1a2e6e56c91027a40cd0 SHA512 fb098b35aa7a72383dfcbbaf6c16040a74d9b4cf8ce6747cce15dd4581dc09c829d9ca302963a29f5660cac63197f69f822262e800be449cb9f03344bc426220
DIST rpmalloc-1f6fb494f2a4237c35494786a3c8f1eba048b217.tar.gz 76365 BLAKE2B 30d194b71f6462ef0b99a67eb068b46aea1f8305be253ba5aba883c5a7954fbc8fe4853b5f86d6c72ded3e87ba2fe5b86ff53a93ea902001e9234ffea72d03d8 SHA512 d9de7ce8ca2608fbf0db0c398bb6d06d1585837cee668918ce361cfbde689c9608593666e570e32c83cc1e535184a27739a7aab3c6bdd45dde4821a3e1524ef1
DIST unordered_dense-3234af2c03549bc85656bfd3a86993bf1cd8aef1.tar.gz 914070 BLAKE2B d6ebb2af2a523b096abb64adeb8ac273f32d0ae31c15a97480674473a464e768aadcefd963a2c184cf18c626d6f0bc9431d13fee11a9edf23c65c7b9d3a49c9d SHA512 67f44a62d0a32b99d42c94f204eb995effbb39f374494e992bcea1c7b9b29df5376129aec9f87868df48ddf706f44cf4f2cffc2a928f667057e418aed8d56626
DIST xxhash-e626a72bc2321cd320e953a0ccf1584cad60f363.tar.gz 1147772 BLAKE2B b96ef9287863cf01d36e73c418f4d2045d00e5d0f26a4e2a73c029cd1e627599e4ff8e5182cfc29e68035b539cecb2d5a0e36abec959685b166d9f216074b086 SHA512 eae9f72abc0bf8fa2cf7087411fd42c2e4640f7f4787bb080d65894e83db8dc78203502bbad6a08c662477e69dc8b93364f9360bf1cd8c2b87deb6cd9440ff4d
diff --git a/app-emulation/fex-xtajit/fex-xtajit-2608.ebuild b/app-emulation/fex-xtajit/fex-xtajit-2608.ebuild
new file mode 100644
index 000000000000..0313812839a0
--- /dev/null
+++ b/app-emulation/fex-xtajit/fex-xtajit-2608.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( {19..22} )
+
+inherit cmake flag-o-matic llvm-r2 toolchain-funcs
+
+DESCRIPTION="A wine emulation dll for running x86 application on an arm64 host"
+HOMEPAGE="https://fex-emu.com"
+
+RPMALLOC_HASH="1d85c246cd827ead6865f4f880d4fef53f2b1864"
+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_gen_dep '
+ llvm-core/llvm:${LLVM_SLOT}=
+ llvm-core/clang:${LLVM_SLOT}=
+ ')
+"
+
+pkg_setup() {
+ HOSTS=(
+ $(usev wow64 aarch64-w64-mingw32)
+ $(usev arm64ec arm64ec-w64-mingw32)
+ )
+ llvm-r2_pkg_setup
+}
+
+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
+ ( 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() {
+ BUILD_DIR="${WORKDIR}/${CHOST}-build-unixlib"
+ CMAKE_USE_DIR="${S}/Source/Windows/UnixLib"
+ mkdir "${BUILD_DIR}" || die
+ local mycmakeargs=(
+ -DCMAKE_CXX_COMPILER_WORKS=1
+ -DCMAKE_BUILD_TYPE=Release
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib/fex-xtajit
+ )
+ cmake_src_configure
+
+ setup_env
+
+ # cmake_src_prepare smushes our toolchain file unconditionally,
+ # so we can't use it for the NT side
+ BUILD_DIR="${WORKDIR}/${CHOST}-build"
+ mkdir "${BUILD_DIR}" || die
+ pushd "${BUILD_DIR}" >/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
+ ( per_host_src_compile )
+ done
+}
+
+per_host_src_compile() {
+ BUILD_DIR="${WORKDIR}/${CHOST}-build-unixlib"
+ cmake_src_compile
+
+ setup_env
+
+ BUILD_DIR="${WORKDIR}/${CHOST}-build"
+ cmake_src_compile
+}
+
+src_install() {
+ for CHOST in ${HOSTS[@]}; do
+ ( per_host_src_install )
+ done
+}
+
+per_host_src_install() {
+ BUILD_DIR="${WORKDIR}/${CHOST}-build-unixlib"
+ cmake_src_install
+
+ setup_env
+
+ BUILD_DIR="${WORKDIR}/${CHOST}-build"
+ cmake_src_install
+ 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."
+}