From 474b9191eaa5bccd13366fbbcf630bed3940b29e Mon Sep 17 00:00:00 2001 From: shrec Date: Sat, 21 Mar 2026 10:40:10 +0000 Subject: [PATCH] build: add arm64-cross and riscv64-cross CMake presets Both cross-toolchains (aarch64-linux-gnu-gcc, riscv64-linux-gnu-gcc) are confirmed to produce clean Release builds with bench_unified + test suite: ARM64: ELF 64-bit AArch64 (armv8-a), bench_unified + run_selftest RISC-V: ELF 64-bit rv64gc_zba_zbb + lp64d, bench_unified + run_selftest Usage: cmake --preset arm64-cross -S libs/UltrafastSecp256k1 -B build-arm64 cmake --preset riscv64-cross -S libs/UltrafastSecp256k1 -B build-riscv64 --- CMakePresets.json | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/CMakePresets.json b/CMakePresets.json index 82328d9..6c1f06e 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -76,6 +76,36 @@ "SECP256K1_BUILD_TESTS": "ON" } }, + { + "name": "arm64-cross", + "displayName": "ARM64 Cross (Linux → AArch64)", + "description": "Cross-compile CPU-only release for AArch64/ARM64 using aarch64-linux-gnu-gcc", + "inherits": "base", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../../cmake/arm64-toolchain.cmake", + "SECP256K1_BUILD_CPU": "ON", + "SECP256K1_BUILD_CUDA": "OFF", + "SECP256K1_BUILD_OPENCL": "OFF", + "SECP256K1_BUILD_TESTS": "ON", + "SECP256K1_BUILD_BENCH": "ON" + } + }, + { + "name": "riscv64-cross", + "displayName": "RISC-V 64 Cross (Linux → rv64gc)", + "description": "Cross-compile CPU-only release for RISC-V 64-bit (rv64gc_zba_zbb) using riscv64-linux-gnu-gcc", + "inherits": "base", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../../cmake/riscv64-toolchain.cmake", + "SECP256K1_BUILD_CPU": "ON", + "SECP256K1_BUILD_CUDA": "OFF", + "SECP256K1_BUILD_OPENCL": "OFF", + "SECP256K1_BUILD_TESTS": "ON", + "SECP256K1_BUILD_BENCH": "ON" + } + }, { "name": "cuda-release", "displayName": "CUDA Release (Linux)",