diff --git a/.github/resources/prover/Makefile b/.github/resources/prover/Makefile index 8a27689..7a5831d 100644 --- a/.github/resources/prover/Makefile +++ b/.github/resources/prover/Makefile @@ -23,18 +23,15 @@ host_linux_x86_64_static: -DCMAKE_PREFIX_PATH=depends/gmp/package && \ make -j$(nproc) -vvv && make install -host_linux_aarch64_static: +host_linux_arm64_static: rm -rf build_prover && mkdir build_prover && cd build_prover && \ cmake .. \ -DTARGET_PLATFORM=aarch64 \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=../package \ - -DCMAKE_SYSTEM_NAME=Linux \ - -DCMAKE_SYSTEM_PROCESSOR=aarch64 \ - -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc \ - -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ \ -DCMAKE_EXE_LINKER_FLAGS="-static -static-libstdc++ -static-libgcc -no-pie" \ - -DUSE_ASM=OFF && \ + -DOpenMP_gomp_LIBRARY=$(LIBGOMP_A) \ + -DCMAKE_PREFIX_PATH=depends/gmp/package && \ make -j$(nproc) -vvv && make install host_windows_x86_64_static: diff --git a/.github/resources/witness-generator/Makefile b/.github/resources/witness-generator/Makefile index 6c028d3..22cd736 100644 --- a/.github/resources/witness-generator/Makefile +++ b/.github/resources/witness-generator/Makefile @@ -13,21 +13,12 @@ OBJS := $(SRCS:.cpp=.o) DEPS_HPP := circom.hpp calcwit.hpp fr.hpp BIN := $(PROJECT) -# ---- Linux x86_64 ---- +# ---- Linux (x86_64 and aarch64) ---- linux: CXXFLAGS=$(CXXFLAGS_COMMON) linux: LDFLAGS=-static linux: LDLIBS=-lgmp linux: $(BIN) -# ---- Linux aarch64 (cross-compile) ---- -# Uses GMP built in rapidsnark/depends/gmp/package_aarch64 -# Path is relative from circuit_cpp directory (e.g., mantle/pol_cpp/) -linux_aarch64: CXX=aarch64-linux-gnu-g++ -linux_aarch64: CXXFLAGS=$(CXXFLAGS_COMMON) -I../../rapidsnark/depends/gmp/package_aarch64/include -linux_aarch64: LDFLAGS=-static -L../../rapidsnark/depends/gmp/package_aarch64/lib -linux_aarch64: LDLIBS=-lgmp -linux_aarch64: $(BIN) - # ---- macOS ---- macos: CXXFLAGS=$(CXXFLAGS_COMMON) -I/opt/homebrew/include -include gmp_patch.hpp macos: LDFLAGS=-Wl,-search_paths_first -Wl,-dead_strip diff --git a/.github/workflows/build-circuits.yml b/.github/workflows/build-circuits.yml index 07781e2..a51675f 100644 --- a/.github/workflows/build-circuits.yml +++ b/.github/workflows/build-circuits.yml @@ -378,14 +378,14 @@ jobs: path: logos-blockchain-circuits-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz build-linux-arm64: - name: Build Linux ARM64 Binaries (Cross-compile for RPI5) - runs-on: ubuntu-latest + name: Build Linux ARM64 Binaries (Native for RPI5) + runs-on: ubuntu-22.04-arm needs: - setup - generate-proving-keys env: VERSION: ${{ needs.setup.outputs.version }} - OS: linux_aarch64 + OS: linux ARCH: aarch64 steps: - name: Install Rust Toolchain @@ -415,11 +415,8 @@ jobs: - name: Install Dependencies [Prover] run: sudo apt install -y build-essential cmake libgmp-dev libsodium-dev nasm curl m4 - - name: Install Dependencies [Cross-compilation] - run: sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - - name: Install Dependencies [Witness Generator] - run: sudo apt install nlohmann-json3-dev + run: sudo apt install -y nlohmann-json3-dev - name: Replace Prover Makefile run: cp .github/resources/prover/Makefile rapidsnark/Makefile @@ -442,8 +439,10 @@ jobs: - name: Compile Prover and Verifier working-directory: rapidsnark run: | - ./build_gmp.sh aarch64 - make host_linux_aarch64_static + ./build_gmp.sh host + # Create symlink for TARGET_PLATFORM=aarch64 to find GMP + ln -s package depends/gmp/package_aarch64 + make host_linux_arm64_static - name: Bundle Rapidsnark Prover env: @@ -1179,7 +1178,7 @@ jobs: platform: - os: linux arch: x86_64 - - os: linux_aarch64 + - os: linux arch: aarch64 - os: macos arch: aarch64