From 5a52b01308559aa6040dbca6d6ff4aab062cab74 Mon Sep 17 00:00:00 2001 From: chirag-parmar Date: Thu, 14 May 2026 15:42:15 +0530 Subject: [PATCH 01/10] build libverifproxy --- .github/workflows/release.yml | 43 +++++++++++++++++++++++++++++++++-- docker/dist/entry_point.sh | 10 ++++++-- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8ce3cb6064..6bb101f607 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,18 +74,22 @@ jobs: NEC_TAR="nimbus-${OS}-${CPU}-${TAG}-$(git rev-parse --short=8 HEAD).tar.gz" NVP_TAR="nimbus_verified_proxy-${OS}-${CPU}-${TAG}-$(git rev-parse --short=8 HEAD).tar.gz" + LVP_TAR="libverifproxy-${OS}-${CPU}-${TAG}-$(git rev-parse --short=8 HEAD).tar.gz" # Pack only the relevant binaries (and their checksums) from build/ # Add additional files (LICENSE, README, configs) if desired with extra -C args. - tar -czf "${NEC_TAR}" --exclude="build/nimbus_verified_proxy*" -C "${ARCHIVE_DIR}" . - tar -czf "${NVP_TAR}" --exclude="build/nimbus*" --exclude="build/librocksdb.dll" -C "${ARCHIVE_DIR}" . + tar -czf "${NEC_TAR}" --exclude="build/nimbus_verified_proxy*" --exclude="build/libverifproxy" -C "${ARCHIVE_DIR}" . + tar -czf "${NVP_TAR}" --exclude="build/nimbus*" --exclude="build/librocksdb.dll" --exclude="build/libverifproxy" -C "${ARCHIVE_DIR}" . + tar -czf "${LVP_TAR}" --exclude="build/nimbus*" --exclude="build/nimbus_verified_proxy*" --exclude="build/librocksdb.dll" -C "${ARCHIVE_DIR}" . # Generate sha512 for the tarballs themselves sha512sum "${NEC_TAR}" > "${NEC_TAR}.sha512sum" sha512sum "${NVP_TAR}" > "${NVP_TAR}.sha512sum" + sha512sum "${LVP_TAR}" > "${LVP_TAR}.sha512sum" echo "nec_tar=${NEC_TAR}" >> $GITHUB_OUTPUT echo "nvp_tar=${NVP_TAR}" >> $GITHUB_OUTPUT + echo "lvp_tar=${LVP_TAR}" >> $GITHUB_OUTPUT - name: Upload execution client tarball artefact uses: actions/upload-artifact@v4 @@ -115,6 +119,20 @@ jobs: path: ./dist/${{ steps.make_dist.outputs.nvp_tar }}.sha512sum retention-days: 2 + - name: Upload libverifproxy tarball artefact + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.os }}-${{ matrix.cpu }}-libverifproxy + path: ./dist/${{ steps.make_dist.outputs.lvp_tar }} + retention-days: 2 + + - name: Upload libverifproxy checksum artefact + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.os }}-${{ matrix.cpu }}-libverifproxy-checksum + path: ./dist/${{ steps.make_dist.outputs.lvp_tar }}.sha512sum + retention-days: 2 + - name: Login to Docker Hub # This step runs only if the tag starts with 'v' if: matrix.os == 'linux' && startsWith(github.ref, 'refs/tags/v') @@ -210,6 +228,19 @@ jobs: echo '# macOS ARM64' >> release_notes.md cat macos-arm64-proxy-checksum/* >> release_notes.md echo '```' >> release_notes.md + echo '' >> release_notes.md + echo '### libverifproxy' >> release_notes.md + echo '' >> release_notes.md + echo '```' >> release_notes.md + echo '# Linux AMD64' >> release_notes.md + cat linux-amd64-libverifproxy-checksum/* >> release_notes.md + echo '# Linux ARM64' >> release_notes.md + cat linux-arm64-libverifproxy-checksum/* >> release_notes.md + echo '# Windows AMD64' >> release_notes.md + cat windows-amd64-libverifproxy-checksum/* >> release_notes.md + echo '# macOS ARM64' >> release_notes.md + cat macos-arm64-libverifproxy-checksum/* >> release_notes.md + echo '```' >> release_notes.md - name: Create release id: create_release @@ -224,12 +255,16 @@ jobs: files: | linux-amd64-execution/* linux-amd64-proxy/* + linux-amd64-libverifproxy/* linux-arm64-execution/* linux-arm64-proxy/* + linux-arm64-libverifproxy/* windows-amd64-execution/* windows-amd64-proxy/* + windows-amd64-libverifproxy/* macos-arm64-execution/* macos-arm64-proxy/* + macos-arm64-libverifproxy/* - name: Delete artefacts uses: geekyeggo/delete-artifact@v5 @@ -238,9 +273,13 @@ jobs: name: | linux-amd64-execution linux-amd64-proxy + linux-amd64-libverifproxy linux-arm64-execution linux-arm64-proxy + linux-arm64-libverifproxy windows-amd64-execution windows-amd64-proxy + windows-amd64-libverifproxy macos-arm64-execution macos-arm64-proxy + macos-arm64-libverifproxy diff --git a/docker/dist/entry_point.sh b/docker/dist/entry_point.sh index 397875a697..731baf2397 100755 --- a/docker/dist/entry_point.sh +++ b/docker/dist/entry_point.sh @@ -18,7 +18,7 @@ if [[ -z "${1}" ]]; then fi PLATFORM="${1}" -BINARIES="nimbus nimbus_verified_proxy" +BINARIES="nimbus nimbus_verified_proxy libverifproxy" ROCKSDB_DIR=/usr/rocksdb echo -e "\nPLATFORM=${PLATFORM}" @@ -170,7 +170,7 @@ elif [[ "${PLATFORM}" == "macos_arm64" ]]; then FORCE_DSYMUTIL=1 \ USE_VENDORED_LIBUNWIND=1 \ USE_CACHED_ROCKSDB=1 \ - NIMFLAGS="${NIMFLAGS_COMMON} --os:macosx --cpu:arm64 --passC:'-mcpu=apple-a14' --passL:-mcpu=apple-a14 --passL:-static-libstdc++ --clang.exe=${CC} --clang.linkerexe=${CXX}" \ + NIMFLAGS="${NIMFLAGS_COMMON} --os:macosx --cpu:arm64 --passC:'-mcpu=apple-a14' --passL:-mcpu=apple-a14 --passL:-static-libstdc++ --clang.exe=${CC} --clang.linkerexe=${CXX} --ar:${AR}" \ ${BINARIES} else # linux_amd64 @@ -214,6 +214,7 @@ if [[ "${PLATFORM}" == "windows_amd64" ]]; then fi for BINARY in ${BINARIES}; do + if [[ "${BINARY}" == "libverifproxy" ]]; then continue; fi cp "./build/${BINARY}${EXT}" "${DIST_PATH}/build/" if [[ "${PLATFORM}" =~ macOS ]]; then # Collect debugging info and filter out warnings. @@ -232,6 +233,11 @@ for BINARY in ${BINARIES}; do sha512sum "${BINARY}${EXT}" >"${BINARY}.sha512sum" cd - >/dev/null done + +mkdir -p "${DIST_PATH}/build/libverifproxy" +cp "build/libverifproxy/libverifproxy.a" "${DIST_PATH}/build/libverifproxy/" +cp "build/libverifproxy/verifproxy.h" "${DIST_PATH}/build/libverifproxy/" + sed -e "s/GIT_COMMIT/${GIT_COMMIT}/" docker/dist/README.md.tpl >"${DIST_PATH}/README.md" if [[ "${PLATFORM}" == "linux_amd64" ]]; then From ea45197320123f9b00ec96de1a434499da373a8f Mon Sep 17 00:00:00 2001 From: chirag-parmar Date: Thu, 14 May 2026 15:47:51 +0530 Subject: [PATCH 02/10] force compilation to .a --- Makefile | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/Makefile b/Makefile index abead2491a..d1220ec282 100644 --- a/Makefile +++ b/Makefile @@ -89,18 +89,6 @@ PORTAL_TOOLS_CSV := $(subst $(SPACE),$(COMMA),$(FLUFFY_TOOLS)) # Namespaced variables to avoid conflicts with other makefiles OS_PLATFORM = $(shell $(CC) -dumpmachine) -ifneq (, $(findstring darwin, $(OS_PLATFORM))) - SHAREDLIBEXT = dylib - STATICLIBEXT = a -else -ifneq (, $(findstring mingw, $(OS_PLATFORM))$(findstring cygwin, $(OS_PLATFORM))$(findstring msys, $(OS_PLATFORM))) - SHAREDLIBEXT = dll - STATICLIBEXT = lib -else - SHAREDLIBEXT = so - STATICLIBEXT = a -endif -endif VERIF_PROXY_OUT_PATH ?= build/libverifproxy/ ifneq (, $(findstring darwin, $(OS_PLATFORM))) @@ -379,7 +367,7 @@ nimbus_verified_proxy_test: | build deps libverifproxy: | build deps echo -e $(BUILD_MSG) "build/$@" && \ $(ENV_SCRIPT) nim c \ - --out:$(VERIF_PROXY_OUT_PATH)/$@.$(STATICLIBEXT) \ + --out:$(VERIF_PROXY_OUT_PATH)/$@.a \ $(NIM_PARAMS) \ nimbus_verified_proxy/library/verifproxy.nim cp nimbus_verified_proxy/library/verifproxy.h $(VERIF_PROXY_OUT_PATH)/ From 0d8b9523de22a50e1ca47a676b84f742b348a20a Mon Sep 17 00:00:00 2001 From: chirag-parmar Date: Thu, 14 May 2026 16:27:57 +0530 Subject: [PATCH 03/10] just aliad the ar --- docker/dist/entry_point.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker/dist/entry_point.sh b/docker/dist/entry_point.sh index 731baf2397..3f8feab997 100755 --- a/docker/dist/entry_point.sh +++ b/docker/dist/entry_point.sh @@ -137,6 +137,10 @@ elif [[ "${PLATFORM}" == "macos_arm64" ]]; then DSYMUTIL="aarch64-apple-darwin${DARWIN_VER}-dsymutil" ${CXX} --version + mkdir -p /tmp/nim-tools + ln -sf "/osxcross/bin/aarch64-apple-darwin${DARWIN_VER}-ar" /tmp/nim-tools/llvm-ar + export PATH="/tmp/nim-tools:${PATH}" + copy_rocksdb make -j$(nproc) init @@ -170,7 +174,7 @@ elif [[ "${PLATFORM}" == "macos_arm64" ]]; then FORCE_DSYMUTIL=1 \ USE_VENDORED_LIBUNWIND=1 \ USE_CACHED_ROCKSDB=1 \ - NIMFLAGS="${NIMFLAGS_COMMON} --os:macosx --cpu:arm64 --passC:'-mcpu=apple-a14' --passL:-mcpu=apple-a14 --passL:-static-libstdc++ --clang.exe=${CC} --clang.linkerexe=${CXX} --ar:${AR}" \ + NIMFLAGS="${NIMFLAGS_COMMON} --os:macosx --cpu:arm64 --passC:'-mcpu=apple-a14' --passL:-mcpu=apple-a14 --passL:-static-libstdc++ --clang.exe=${CC} --clang.linkerexe=${CXX}" \ ${BINARIES} else # linux_amd64 From 7bab089d81262842679988074647a46fb0155a4d Mon Sep 17 00:00:00 2001 From: chirag-parmar Date: Thu, 14 May 2026 18:02:17 +0530 Subject: [PATCH 04/10] use llm suggestion of using gcc profile but still use clang as the executable --- docker/dist/entry_point.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/docker/dist/entry_point.sh b/docker/dist/entry_point.sh index 3f8feab997..6f785d0437 100755 --- a/docker/dist/entry_point.sh +++ b/docker/dist/entry_point.sh @@ -137,10 +137,6 @@ elif [[ "${PLATFORM}" == "macos_arm64" ]]; then DSYMUTIL="aarch64-apple-darwin${DARWIN_VER}-dsymutil" ${CXX} --version - mkdir -p /tmp/nim-tools - ln -sf "/osxcross/bin/aarch64-apple-darwin${DARWIN_VER}-ar" /tmp/nim-tools/llvm-ar - export PATH="/tmp/nim-tools:${PATH}" - copy_rocksdb make -j$(nproc) init @@ -175,7 +171,17 @@ elif [[ "${PLATFORM}" == "macos_arm64" ]]; then USE_VENDORED_LIBUNWIND=1 \ USE_CACHED_ROCKSDB=1 \ NIMFLAGS="${NIMFLAGS_COMMON} --os:macosx --cpu:arm64 --passC:'-mcpu=apple-a14' --passL:-mcpu=apple-a14 --passL:-static-libstdc++ --clang.exe=${CC} --clang.linkerexe=${CXX}" \ - ${BINARIES} + nimbus nimbus_verified_proxy + + make \ + -j1 \ + LOG_LEVEL="TRACE" \ + CC="${CC}" \ + AR="${AR}" \ + RANLIB="${RANLIB}" \ + USE_CACHED_ROCKSDB=1 \ + NIMFLAGS="${NIMFLAGS_COMMON} --cc:gcc --os:macosx --cpu:arm64 --passC:'-mcpu=apple-a14' --passL:-mcpu=apple-a14 --passL:-static-libstdc++ --gcc.exe=${CC} --gcc.linkerexe=${CXX}" \ + libverifproxy else # linux_amd64 g++ --version From 990012ae09860527e3c27473c2d8e3c0855a0552 Mon Sep 17 00:00:00 2001 From: chirag-parmar Date: Fri, 15 May 2026 12:07:48 +0530 Subject: [PATCH 05/10] test library in nightly and smoothen out build process --- .github/workflows/nightly_build.yml | 6 ++++++ .github/workflows/nimbus_verified_proxy.yml | 6 +++--- Makefile | 10 ++++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/nightly_build.yml b/.github/workflows/nightly_build.yml index 56d1db59bf..ff3cba561b 100644 --- a/.github/workflows/nightly_build.yml +++ b/.github/workflows/nightly_build.yml @@ -87,6 +87,9 @@ jobs: runs-on: ${{ matrix.builder }} steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: Download artefacts uses: actions/download-artifact@v5 with: @@ -98,6 +101,9 @@ jobs: build/nimbus --help build/nimbus_verified_proxy --help + - name: Test libverifproxy + run: make libverifproxy_test + nightly-build-release: name: Nightly build release needs: build diff --git a/.github/workflows/nimbus_verified_proxy.yml b/.github/workflows/nimbus_verified_proxy.yml index 9ea306b373..25c402fce5 100644 --- a/.github/workflows/nimbus_verified_proxy.yml +++ b/.github/workflows/nimbus_verified_proxy.yml @@ -107,6 +107,6 @@ jobs: gcc --version DEFAULT_MAKE_FLAGS="-j${ncpu}" make ${DEFAULT_MAKE_FLAGS} nimbus_verified_proxy - build/nimbus_verified_proxy --help - # "-static" option will not work for osx unless static system libraries are provided - make ${DEFAULT_MAKE_FLAGS} nimbus_verified_proxy_test libverifproxy_test + make ${DEFAULT_MAKE_FLAGS} libverifproxy + make ${DEFAULT_MAKE_FLAGS} nimbus_verified_proxy_test + make ${DEFAULT_MAKE_FLAGS} libverifproxy_test diff --git a/Makefile b/Makefile index d1220ec282..bb5db92776 100644 --- a/Makefile +++ b/Makefile @@ -364,15 +364,17 @@ nimbus_verified_proxy_test: | build deps # Shared library for verified proxy -libverifproxy: | build deps - echo -e $(BUILD_MSG) "build/$@" && \ +$(VERIF_PROXY_OUT_PATH)/libverifproxy.a: | build deps + echo -e $(BUILD_MSG) "build/libverifproxy" && \ $(ENV_SCRIPT) nim c \ - --out:$(VERIF_PROXY_OUT_PATH)/$@.a \ + --out:$@ \ $(NIM_PARAMS) \ nimbus_verified_proxy/library/verifproxy.nim cp nimbus_verified_proxy/library/verifproxy.h $(VERIF_PROXY_OUT_PATH)/ -libverifproxy_test: libverifproxy +libverifproxy: $(VERIF_PROXY_OUT_PATH)/libverifproxy.a + +libverifproxy_test: $(VERIF_PROXY_OUT_PATH)/libverifproxy.a $(CC) -I$(VERIF_PROXY_OUT_PATH) -L$(VERIF_PROXY_OUT_PATH) \ -Wno-incompatible-pointer-types \ -o build/$@ \ From cf88f4ab3aad23e7009606cbce8776d1ba53551c Mon Sep 17 00:00:00 2001 From: chirag-parmar Date: Fri, 15 May 2026 15:31:57 +0530 Subject: [PATCH 06/10] fix --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index bb5db92776..cf08d894e8 100644 --- a/Makefile +++ b/Makefile @@ -364,7 +364,7 @@ nimbus_verified_proxy_test: | build deps # Shared library for verified proxy -$(VERIF_PROXY_OUT_PATH)/libverifproxy.a: | build deps +$(VERIF_PROXY_OUT_PATH)/libverifproxy.a: echo -e $(BUILD_MSG) "build/libverifproxy" && \ $(ENV_SCRIPT) nim c \ --out:$@ \ @@ -372,6 +372,7 @@ $(VERIF_PROXY_OUT_PATH)/libverifproxy.a: | build deps nimbus_verified_proxy/library/verifproxy.nim cp nimbus_verified_proxy/library/verifproxy.h $(VERIF_PROXY_OUT_PATH)/ +libverifproxy: | build deps libverifproxy: $(VERIF_PROXY_OUT_PATH)/libverifproxy.a libverifproxy_test: $(VERIF_PROXY_OUT_PATH)/libverifproxy.a From de90ccb8f0b611d21cd1bb1dd2e3c0b21f8d37f3 Mon Sep 17 00:00:00 2001 From: chirag-parmar Date: Fri, 15 May 2026 16:34:52 +0530 Subject: [PATCH 07/10] fixes --- .github/workflows/nightly_build.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nightly_build.yml b/.github/workflows/nightly_build.yml index ff3cba561b..517d05a34e 100644 --- a/.github/workflows/nightly_build.yml +++ b/.github/workflows/nightly_build.yml @@ -56,6 +56,9 @@ jobs: echo "archive=${NEW_ARCHIVE_DIR}.tar.gz" >> $GITHUB_OUTPUT echo "archive_dir=${NEW_ARCHIVE_DIR}" >> $GITHUB_OUTPUT + - name: Test libverifproxy + run: make libverifproxy_test + - name: Upload archive artefact uses: actions/upload-artifact@v4 with: @@ -87,9 +90,6 @@ jobs: runs-on: ${{ matrix.builder }} steps: - - name: Checkout code - uses: actions/checkout@v6 - - name: Download artefacts uses: actions/download-artifact@v5 with: @@ -101,8 +101,6 @@ jobs: build/nimbus --help build/nimbus_verified_proxy --help - - name: Test libverifproxy - run: make libverifproxy_test nightly-build-release: name: Nightly build release From ba65f7dada4f47fff58ea56cc2e16b502c81b019 Mon Sep 17 00:00:00 2001 From: chirag-parmar Date: Mon, 18 May 2026 16:31:54 +0530 Subject: [PATCH 08/10] implement hack --- .github/workflows/nightly_build.yml | 10 +++++++--- Makefile | 10 +++++----- docker/dist/entry_point.sh | 25 +++++++++++++++++++++++-- 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/.github/workflows/nightly_build.yml b/.github/workflows/nightly_build.yml index 517d05a34e..aba778097d 100644 --- a/.github/workflows/nightly_build.yml +++ b/.github/workflows/nightly_build.yml @@ -56,9 +56,6 @@ jobs: echo "archive=${NEW_ARCHIVE_DIR}.tar.gz" >> $GITHUB_OUTPUT echo "archive_dir=${NEW_ARCHIVE_DIR}" >> $GITHUB_OUTPUT - - name: Test libverifproxy - run: make libverifproxy_test - - name: Upload archive artefact uses: actions/upload-artifact@v4 with: @@ -90,6 +87,9 @@ jobs: runs-on: ${{ matrix.builder }} steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: Download artefacts uses: actions/download-artifact@v5 with: @@ -101,6 +101,10 @@ jobs: build/nimbus --help build/nimbus_verified_proxy --help + - name: Test libverifproxy + # Windows runner uses MinGW (libstdc++) but the library is built with llvm-mingw (libc++) + if: matrix.os != 'windows' + run: make libverifproxy_test nightly-build-release: name: Nightly build release diff --git a/Makefile b/Makefile index cf08d894e8..face3c0d2b 100644 --- a/Makefile +++ b/Makefile @@ -92,11 +92,11 @@ OS_PLATFORM = $(shell $(CC) -dumpmachine) VERIF_PROXY_OUT_PATH ?= build/libverifproxy/ ifneq (, $(findstring darwin, $(OS_PLATFORM))) - VERIFPROXY_LDFLAGS = -framework Security -else ifneq (, $(findstring mingw, $(OS_PLATFORM))$(findstring windows-gnu, $(OS_PLATFORM))) - VERIFPROXY_LDFLAGS = -lbcrypt -lpthread -lws2_32 + VERIFPROXY_LDFLAGS = -lc++ -framework Security +else ifneq (, $(findstring mingw, $(OS_PLATFORM))) + VERIFPROXY_LDFLAGS = -lc++ -lbcrypt -lpthread -lws2_32 else - VERIFPROXY_LDFLAGS = -lm + VERIFPROXY_LDFLAGS = -lstdc++ -lm endif .PHONY: \ @@ -380,7 +380,7 @@ libverifproxy_test: $(VERIF_PROXY_OUT_PATH)/libverifproxy.a -Wno-incompatible-pointer-types \ -o build/$@ \ tests/library/test_api.c \ - -lverifproxy -lstdc++ $(VERIFPROXY_LDFLAGS) + -lverifproxy $(VERIFPROXY_LDFLAGS) ./build/$@ nimbus_verified_proxy_wasm: | build deps diff --git a/docker/dist/entry_point.sh b/docker/dist/entry_point.sh index 6f785d0437..d32f15188f 100755 --- a/docker/dist/entry_point.sh +++ b/docker/dist/entry_point.sh @@ -119,7 +119,7 @@ elif [[ "${PLATFORM}" == "linux_arm64" ]]; then LOG_LEVEL="TRACE" \ CC="${CC}" \ CXX="${CXX}" \ - NIMFLAGS="${NIMFLAGS_COMMON} --cpu:arm64 --arm64.linux.gcc.exe=${CC} --arm64.linux.gcc.linkerexe=${CXX} --passL:'-static-libstdc++'" \ + NIMFLAGS="${NIMFLAGS_COMMON} --cpu:arm64 --passC:-fPIC --arm64.linux.gcc.exe=${CC} --arm64.linux.gcc.linkerexe=${CXX} --passL:'-static-libstdc++'" \ PARTIAL_STATIC_LINKING=1 \ USE_CACHED_ROCKSDB=1 \ ${BINARIES} @@ -173,6 +173,27 @@ elif [[ "${PLATFORM}" == "macos_arm64" ]]; then NIMFLAGS="${NIMFLAGS_COMMON} --os:macosx --cpu:arm64 --passC:'-mcpu=apple-a14' --passL:-mcpu=apple-a14 --passL:-static-libstdc++ --clang.exe=${CC} --clang.linkerexe=${CXX}" \ nimbus nimbus_verified_proxy + # the AR provided by oscxross doesn't support `llvm-ar @verifproxy_linkerArgs.txt` syntax + # for the libverifproxy we just alias the osxcross AR as llvm-ar. So we create a shim that + # expands the arguments from the response file and then executes the AR + AR_SHIM_DIR="$(mktemp -d)" + cat > "${AR_SHIM_DIR}/llvm-ar" < Date: Tue, 19 May 2026 14:09:47 +0530 Subject: [PATCH 09/10] add debug comments --- docker/dist/entry_point.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/dist/entry_point.sh b/docker/dist/entry_point.sh index d32f15188f..eabbca4c1a 100755 --- a/docker/dist/entry_point.sh +++ b/docker/dist/entry_point.sh @@ -189,6 +189,8 @@ for arg in "\$@"; do ARGS+=("\${arg}") fi done +echo "llvm-ar wrapper called with: \$@" >&2 +echo "expanded ARGS: \${ARGS[@]}" >&2 exec "/osxcross/bin/aarch64-apple-darwin${DARWIN_VER}-ar" "\${ARGS[@]}" EOF chmod +x "${AR_SHIM_DIR}/llvm-ar" From fa547c8388f3ff750b0d54bd695cc8253278ffe7 Mon Sep 17 00:00:00 2001 From: chirag-parmar Date: Tue, 19 May 2026 15:36:47 +0530 Subject: [PATCH 10/10] fixes --- docker/dist/entry_point.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/dist/entry_point.sh b/docker/dist/entry_point.sh index eabbca4c1a..3e50dd4789 100755 --- a/docker/dist/entry_point.sh +++ b/docker/dist/entry_point.sh @@ -182,8 +182,8 @@ elif [[ "${PLATFORM}" == "macos_arm64" ]]; then ARGS=() for arg in "\$@"; do if [[ "\${arg}" == @* ]]; then - while IFS= read -r line; do - [[ -n "\${line}" ]] && ARGS+=("\${line}") + while read -r -a words || [[ \${#words[@]} -gt 0 ]]; do + ARGS+=("\${words[@]}") done < "\${arg#@}" else ARGS+=("\${arg}")