Add ARM64X support
Extend the aarch64-w64-mingw32 prefix to provide ARM64EC libraries alongside standard AArch64 libraries, replacing the separate arm64ec-w64-mingw32 prefix. This aligns with how MSVC distributes ARM64EC libraries and enables the linker to process both targets simultaneously into a single hybrid binary. This extensively utilizes LLVM's -marm64x option, compiling both targets in a single compiler invocation to produce hybrid object files (unlike MSVC tools, which require separate compilation passes).
This commit is contained in:
1 parent
eae760ec88
commit
986847858c
10 files changed
+127
-33
No files matched your search
@@ -54,6 +54,20 @@ if [ ! -d $SQLITE ]; then
|
||||
unzip sqlite-amalgamation-$SQLITE_VERSION.zip
|
||||
fi
|
||||
|
||||
# pgo-training.make uses an explicit --sysroot pointing to the top of the llvm-mingw
|
||||
# installation (rather than the specific target prefix). This is currently not
|
||||
# supported by the Clang driver for arm64ec, which cannot use the arm64x prefix in
|
||||
# this configuration. Ideally, this should be fixed in Clang, but arm64ec provides
|
||||
# little additional profiling data compared to aarch64 anyway, so disable it for now.
|
||||
ORIG_ARCHS="$ARCHS"
|
||||
ARCHS=""
|
||||
for arch in $ORIG_ARCHS; do
|
||||
case $arch in
|
||||
arm64ec) continue ;;
|
||||
*) ARCHS="$ARCHS $arch" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
rm -rf "$LLVM_PROFILE_DATA_DIR"
|
||||
export ARCHS
|
||||
$MAKE -f pgo-training.make PREFIX=$PREFIX STAGE1=$STAGE1 SQLITE=$SQLITE clean
|
||||
|
||||
Reference in new issue
Block a user