From 226d32f9bfc6c898e4be053851792e704a7f5fdc Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 27 Nov 2025 11:49:24 +0800 Subject: [PATCH 1/4] fix: build on macos --- build/common.mk | 16 ++++++++++++++++ coordinator/.gitignore | 1 + coordinator/Makefile | 5 ++++- coordinator/README.md | 1 + coordinator/internal/logic/libzkp/Makefile | 4 +++- coordinator/internal/logic/libzkp/lib.go | 2 +- crates/libzkp/Cargo.toml | 3 +++ tests/prover-e2e/Makefile | 5 ++++- 8 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 build/common.mk diff --git a/build/common.mk b/build/common.mk new file mode 100644 index 0000000000..5cf9241266 --- /dev/null +++ b/build/common.mk @@ -0,0 +1,16 @@ +UNAME_S := $(shell uname -s) +IS_DARWIN := $(findstring Darwin,$(UNAME_S)) + +SHLIB_EXT := so +ifeq ($(UNAME_S),Darwin) +SHLIB_EXT := dylib +endif + +LIB_ZKP_NAME := libzkp.$(SHLIB_EXT) + +define macos_codesign +@if [ -n "$(IS_DARWIN)" ]; then \ + codesign --force --sign - '$(1)'; \ + codesign --verify --deep --verbose '$(1)'; \ +fi +endef diff --git a/coordinator/.gitignore b/coordinator/.gitignore index 0aad0c9874..c6e6f13b46 100644 --- a/coordinator/.gitignore +++ b/coordinator/.gitignore @@ -2,3 +2,4 @@ .idea internal/logic/verifier/lib internal/libzkp/lib/libzkp.so +internal/libzkp/lib/libzkp.dylib diff --git a/coordinator/Makefile b/coordinator/Makefile index e25df0db01..151d4a83b3 100644 --- a/coordinator/Makefile +++ b/coordinator/Makefile @@ -1,8 +1,10 @@ +include ../build/common.mk + .PHONY: lint docker clean coordinator coordinator_skip_libzkp mock_coordinator libzkp IMAGE_VERSION=latest REPO_ROOT_DIR=./.. -LIBZKP_PATH=./internal/logic/libzkp/lib/libzkp.so +LIBZKP_PATH=./internal/logic/libzkp/lib/$(LIB_ZKP_NAME) ifeq (4.3,$(firstword $(sort $(MAKE_VERSION) 4.3))) ZKVM_VERSION=$(shell grep -m 1 "zkvm-prover?" ../Cargo.lock | cut -d "#" -f2 | cut -c-7) @@ -27,6 +29,7 @@ libzkp: clean_libzkp $(LIBZKP_PATH) coordinator_api: $(LIBZKP_PATH) ## Builds the Coordinator api instance. go build -ldflags "-X scroll-tech/common/version.ZkVersion=${ZK_VERSION}" -o $(PWD)/build/bin/coordinator_api ./cmd/api + $(call macos_codesign,$(PWD)/build/bin/coordinator_api) coordinator_cron: go build -ldflags "-X scroll-tech/common/version.ZkVersion=${ZK_VERSION}" -o $(PWD)/build/bin/coordinator_cron ./cmd/cron diff --git a/coordinator/README.md b/coordinator/README.md index 93cd4560c7..14146ae7e0 100644 --- a/coordinator/README.md +++ b/coordinator/README.md @@ -11,6 +11,7 @@ See [monorepo prerequisites](../README.md#prerequisites). ## Build ```bash +# gvm use go1.22 # if your global Go version is not 1.22 make clean make coordinator_api make coordinator_cron diff --git a/coordinator/internal/logic/libzkp/Makefile b/coordinator/internal/logic/libzkp/Makefile index 24e7881099..8662dd5bd5 100644 --- a/coordinator/internal/logic/libzkp/Makefile +++ b/coordinator/internal/logic/libzkp/Makefile @@ -1,9 +1,11 @@ +include ../../../../build/common.mk + .PHONY: help fmt clippy test test-ci test-all build: @cargo build --release -p libzkp-c @mkdir -p lib - @cp -f ../../../../target/release/libzkp.so lib/ + @cp -f ../../../../target/release/$(LIB_ZKP_NAME) lib/ fmt: @cargo fmt --all -- --check diff --git a/coordinator/internal/logic/libzkp/lib.go b/coordinator/internal/logic/libzkp/lib.go index bb35c71ce7..0a59871e05 100644 --- a/coordinator/internal/logic/libzkp/lib.go +++ b/coordinator/internal/logic/libzkp/lib.go @@ -1,7 +1,7 @@ package libzkp /* -#cgo LDFLAGS: -lzkp -lm -ldl -L${SRCDIR}/lib -Wl,-rpath=${SRCDIR}/lib +#cgo LDFLAGS: -lzkp -lm -ldl -L${SRCDIR}/lib -Wl,-rpath,${SRCDIR}/lib #cgo gpu LDFLAGS: -lzkp -lm -ldl -lgmp -lstdc++ -lprocps -L/usr/local/cuda/lib64/ -lcudart -L${SRCDIR}/lib/ -Wl,-rpath=${SRCDIR}/lib #include #include "libzkp.h" diff --git a/crates/libzkp/Cargo.toml b/crates/libzkp/Cargo.toml index d673efc9f0..24e13293db 100644 --- a/crates/libzkp/Cargo.toml +++ b/crates/libzkp/Cargo.toml @@ -3,6 +3,9 @@ name = "libzkp" version.workspace = true edition.workspace = true +[lib] +crate-type = ["rlib", "cdylib"] + # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] scroll-zkvm-types = { workspace = true, features = ["scroll"] } diff --git a/tests/prover-e2e/Makefile b/tests/prover-e2e/Makefile index e2459e5666..f516d8eb6c 100644 --- a/tests/prover-e2e/Makefile +++ b/tests/prover-e2e/Makefile @@ -1,3 +1,5 @@ +include ../../build/common.mk + .PHONY: clean setup_db test_tool all check_vars include conf/.make.env @@ -52,6 +54,7 @@ reset_db: test_tool: go build -o $(PWD)/build/bin/e2e_tool ../../rollup/tests/integration_tool + $(call macos_codesign,$(PWD)/build/bin/e2e_tool) build/bin/e2e_tool: test_tool @@ -71,4 +74,4 @@ reimport_data: reset_db import_data coordinator_setup: SCROLL_FORK_NAME=${SCROLL_FORK_NAME} $(MAKE) -C ../../coordinator localsetup - cp -f conf/genesis.json ../../coordinator/build/bin/conf \ No newline at end of file + cp -f conf/genesis.json ../../coordinator/build/bin/conf From 88066d72e8e732717adde70474db1addd094a90e Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 27 Nov 2025 12:40:36 +0800 Subject: [PATCH 2/4] apply review --- coordinator/.gitignore | 4 ++-- coordinator/internal/logic/libzkp/lib.go | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/coordinator/.gitignore b/coordinator/.gitignore index c6e6f13b46..e41706811b 100644 --- a/coordinator/.gitignore +++ b/coordinator/.gitignore @@ -1,5 +1,5 @@ /build/bin .idea internal/logic/verifier/lib -internal/libzkp/lib/libzkp.so -internal/libzkp/lib/libzkp.dylib +libzkp.so +libzkp.dylib diff --git a/coordinator/internal/logic/libzkp/lib.go b/coordinator/internal/logic/libzkp/lib.go index 0a59871e05..315496e409 100644 --- a/coordinator/internal/logic/libzkp/lib.go +++ b/coordinator/internal/logic/libzkp/lib.go @@ -1,7 +1,8 @@ package libzkp /* -#cgo LDFLAGS: -lzkp -lm -ldl -L${SRCDIR}/lib -Wl,-rpath,${SRCDIR}/lib +#cgo linux LDFLAGS: -lzkp -lm -ldl -L${SRCDIR}/lib -Wl,-rpath=${SRCDIR}/lib +#cgo darwin LDFLAGS: -lzkp -lm -ldl -L${SRCDIR}/lib -Wl,-rpath,${SRCDIR}/lib #cgo gpu LDFLAGS: -lzkp -lm -ldl -lgmp -lstdc++ -lprocps -L/usr/local/cuda/lib64/ -lcudart -L${SRCDIR}/lib/ -Wl,-rpath=${SRCDIR}/lib #include #include "libzkp.h" From 5d378a015d8970e53ccdbdef94791114ee06013e Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 27 Nov 2025 12:43:49 +0800 Subject: [PATCH 3/4] apply review from coderabbitai --- coordinator/README.md | 3 ++- coordinator/internal/logic/libzkp/Makefile | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/coordinator/README.md b/coordinator/README.md index 14146ae7e0..a5203a1234 100644 --- a/coordinator/README.md +++ b/coordinator/README.md @@ -10,8 +10,9 @@ See [monorepo prerequisites](../README.md#prerequisites). ## Build +Using Go version 1.22 + ```bash -# gvm use go1.22 # if your global Go version is not 1.22 make clean make coordinator_api make coordinator_cron diff --git a/coordinator/internal/logic/libzkp/Makefile b/coordinator/internal/logic/libzkp/Makefile index 8662dd5bd5..b755048310 100644 --- a/coordinator/internal/logic/libzkp/Makefile +++ b/coordinator/internal/logic/libzkp/Makefile @@ -12,7 +12,7 @@ fmt: clean: @cargo clean --release -p libzkp -p libzkp-c -p l2geth - @rm -f lib/libzkp.so + @rm -f lib/$(LIB_ZKP_NAME) clippy: @cargo check --release --all-features From 8a05300ab317c2a364c9fad69879769a8e3bd40e Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 27 Nov 2025 12:48:41 +0800 Subject: [PATCH 4/4] apply review from coderabbitai --- coordinator/internal/logic/libzkp/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/coordinator/internal/logic/libzkp/Makefile b/coordinator/internal/logic/libzkp/Makefile index b755048310..9c33d9c8ed 100644 --- a/coordinator/internal/logic/libzkp/Makefile +++ b/coordinator/internal/logic/libzkp/Makefile @@ -1,6 +1,8 @@ include ../../../../build/common.mk -.PHONY: help fmt clippy test test-ci test-all +.PHONY: help fmt clippy test test-ci test-all clean build + +all: build build: @cargo build --release -p libzkp-c