From d618f0857dd2073c59de2523a51b2b7e6a96cece Mon Sep 17 00:00:00 2001 From: "Andrew Jackson (Ajax)" Date: Thu, 30 Oct 2025 16:26:27 -0500 Subject: [PATCH 1/5] fvm optional, saves 24mb binary size --- Makefile | 20 +++++++++++++++++++- extern/filecoin-ffi | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 668089c46..5f500db52 100644 --- a/Makefile +++ b/Makefile @@ -10,14 +10,32 @@ FFI_DEPS:=$(addprefix $(FFI_PATH),$(FFI_DEPS)) $(FFI_DEPS): build/.filecoin-install ; +# When enabled, build size-optimized libfilcrypto by default +CURIO_OPTIMAL_LIBFILCRYPTO ?= 1 + build/.filecoin-install: $(FFI_PATH) - $(MAKE) -C $(FFI_PATH) $(FFI_DEPS:$(FFI_PATH)%=%) + @if [ "$(CURIO_OPTIMAL_LIBFILCRYPTO)" = "1" ]; then \ + $(MAKE) curio-libfilecoin; \ + else \ + $(MAKE) -C $(FFI_PATH) $(FFI_DEPS:$(FFI_PATH)%=%); \ + fi @touch $@ MODULES+=$(FFI_PATH) BUILD_DEPS+=build/.filecoin-install CLEAN+=build/.filecoin-install +## Custom libfilcrypto build for Curio (size-optimized, no FVM) +.PHONY: curio-libfilecoin +curio-libfilecoin: + FFI_BUILD_FROM_SOURCE=1 \ + FFI_USE_GPU=1 \ + FFI_USE_OPENCL=1 \ + FFI_USE_MULTICORE_SDR=1 \ + RUSTFLAGS='-C codegen-units=1 -C opt-level=3 -C strip=symbols' \ + $(MAKE) -C $(FFI_PATH) clean .install-filcrypto + @echo "Rebuilt libfilcrypto for Curio (OpenCL+multicore, no default features)." + ffi-version-check: @[[ "$$(awk '/const Version/{print $$5}' extern/filecoin-ffi/version.go)" -eq 3 ]] || (echo "FFI version mismatch, update submodules"; exit 1) BUILD_DEPS+=ffi-version-check diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index 586063e9c..d6570b004 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit 586063e9cfa45147d554f176759520398715ba41 +Subproject commit d6570b00438737eeb26610389dd718e4830fc1e4 From 842d810c45a8e9b9503f1568e4b6cd1e552a131b Mon Sep 17 00:00:00 2001 From: "Andrew Jackson (Ajax)" Date: Mon, 3 Nov 2025 18:30:50 -0600 Subject: [PATCH 2/5] fvm for tests --- .github/workflows/ci.yml | 3 ++- Makefile | 13 ++++++++++++- extern/filecoin-ffi | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c3c95c25..57c851c1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -195,6 +195,7 @@ jobs: - name: Install FFI env: GITHUB_TOKEN: ${{ github.token }} + CURIO_OPTIMAL_LIBFILCRYPTO: 0 run: | make deps shell: bash @@ -230,7 +231,7 @@ jobs: echo "Using YugabyteDB Container IP: ${{env.CURIO_HARMONYDB_HOSTS}}" export CURIO_HARMONYDB_HOSTS=${{ env.CURIO_HARMONYDB_HOSTS }} export LOTUS_HARMONYDB_HOSTS=${{ env.CURIO_HARMONYDB_HOSTS }} - go test -v --tags=debug -timeout 30m ${{ matrix.test-suite.target }} + go test -v --tags="debug,fvm" -timeout 30m ${{ matrix.test-suite.target }} - name: Stop YugabyteDB container if: always() # Ensure this runs even if the tests fail diff --git a/Makefile b/Makefile index 5f500db52..919b8618d 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ build/.filecoin-install: $(FFI_PATH) @if [ "$(CURIO_OPTIMAL_LIBFILCRYPTO)" = "1" ]; then \ $(MAKE) curio-libfilecoin; \ else \ - $(MAKE) -C $(FFI_PATH) $(FFI_DEPS:$(FFI_PATH)%=%); \ + FFI_USE_FVM=1 $(MAKE) -C $(FFI_PATH) $(FFI_DEPS:$(FFI_PATH)%=%); \ fi @touch $@ @@ -100,6 +100,17 @@ CLEAN+=build/.update-modules deps: $(BUILD_DEPS) .PHONY: deps +## Test targets + +test-deps: CURIO_OPTIMAL_LIBFILCRYPTO=0 +test-deps: $(BUILD_DEPS) + @echo "Built dependencies with FVM support for testing" +.PHONY: test-deps + +test: test-deps + go test -v -tags="cgo,fvm" -timeout 30m ./itests/... +.PHONY: test + ## ldflags -s -w strips binary CURIO_TAGS ?= cunative diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index d6570b004..a9f1473a2 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit d6570b00438737eeb26610389dd718e4830fc1e4 +Subproject commit a9f1473a275e1313b7a4b5539bd0ea4905aa1930 From 7ef94744ddaddef538ee9cd7ecc10caf77e055ce Mon Sep 17 00:00:00 2001 From: "Andrew Jackson (Ajax)" Date: Mon, 10 Nov 2025 16:43:34 -0600 Subject: [PATCH 3/5] review changes --- Makefile | 5 ++--- extern/filecoin-ffi | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 919b8618d..88c77de1f 100644 --- a/Makefile +++ b/Makefile @@ -15,9 +15,9 @@ CURIO_OPTIMAL_LIBFILCRYPTO ?= 1 build/.filecoin-install: $(FFI_PATH) @if [ "$(CURIO_OPTIMAL_LIBFILCRYPTO)" = "1" ]; then \ - $(MAKE) curio-libfilecoin; \ + FFI_DISABLE_FVM=1 $(MAKE) curio-libfilecoin; \ else \ - FFI_USE_FVM=1 $(MAKE) -C $(FFI_PATH) $(FFI_DEPS:$(FFI_PATH)%=%); \ + $(MAKE) -C $(FFI_PATH) $(FFI_DEPS:$(FFI_PATH)%=%); \ fi @touch $@ @@ -30,7 +30,6 @@ CLEAN+=build/.filecoin-install curio-libfilecoin: FFI_BUILD_FROM_SOURCE=1 \ FFI_USE_GPU=1 \ - FFI_USE_OPENCL=1 \ FFI_USE_MULTICORE_SDR=1 \ RUSTFLAGS='-C codegen-units=1 -C opt-level=3 -C strip=symbols' \ $(MAKE) -C $(FFI_PATH) clean .install-filcrypto diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index a9f1473a2..4ba7b36fb 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit a9f1473a275e1313b7a4b5539bd0ea4905aa1930 +Subproject commit 4ba7b36fbdd832cb4ae872a7b7029165dbd355bf From 827c0e3a54534a212d1dc3c61955d3c065721c50 Mon Sep 17 00:00:00 2001 From: Andy Jackson Date: Tue, 11 Nov 2025 11:46:37 -0600 Subject: [PATCH 4/5] lint --- extern/filecoin-ffi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index 4ba7b36fb..3084e07c9 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit 4ba7b36fbdd832cb4ae872a7b7029165dbd355bf +Subproject commit 3084e07c99583046a1be271cffa42625f1ffd7c0 From 3e2009fbb887c0b3dc459ab88e89b62c480826e4 Mon Sep 17 00:00:00 2001 From: Andy Jackson Date: Tue, 11 Nov 2025 11:48:17 -0600 Subject: [PATCH 5/5] merge --- extern/filecoin-ffi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index 3084e07c9..377980587 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit 3084e07c99583046a1be271cffa42625f1ffd7c0 +Subproject commit 3779805870f9d070bb73a8083feef25c93be9c51