diff --git a/.github/workflows/reusable-build-test-config.yml b/.github/workflows/reusable-build-test-config.yml index 0d03da3ddd..8690edcde5 100644 --- a/.github/workflows/reusable-build-test-config.yml +++ b/.github/workflows/reusable-build-test-config.yml @@ -323,7 +323,7 @@ jobs: working-directory: ${{ env.BUILD_DIR }} run: | ldd ./xrpld - if [ "$(ldd ./xrpld | grep -E '(libstdc\+\+)' | wc -l)" -eq 0 ]; then + if [ "$(ldd ./xrpld | grep -E '(libstdc\+\+|libgcc)' | wc -l)" -eq 0 ]; then echo 'The binary is statically linked.' else echo 'The binary is dynamically linked.' diff --git a/cmake/XrplCore.cmake b/cmake/XrplCore.cmake index a9d39a3d52..e9e3af4c7c 100644 --- a/cmake/XrplCore.cmake +++ b/cmake/XrplCore.cmake @@ -207,16 +207,10 @@ target_link_libraries( ) add_module(xrpl tx) -# The wasm engine is a Rust crate reached over cxx: the bridge target supplies the -# generated `lib.h` and `rust/cxx.h` that `tx/wasm` compiles against, and the Rust -# static library everything downstream links. PUBLIC because the include path travels -# with the module's own public headers. target_link_libraries( xrpl.libxrpl.tx PUBLIC xrpl.libxrpl.ledger xrpl_wasm_vm_ffi_cxxbridge ) -# Those headers do not exist at configure time, and the header-verification target -# compiles this module's headers on their own, so both need the crates built first. add_dependencies(xrpl.libxrpl.tx xrpl_crates) add_module(xrpl consensus) diff --git a/crates/CMakeLists.txt b/crates/CMakeLists.txt index a728b47cc5..f26cfeb4e3 100644 --- a/crates/CMakeLists.txt +++ b/crates/CMakeLists.txt @@ -103,15 +103,8 @@ endfunction() add_xrpl_crate(xrpl_wasm_vm_ffi CRATE xrpl_wasm_vm_ffi FILES lib.rs) -# Test-only, and deliberately not part of xrpl_wasm_vm_ffi: it carries the `wat` assembler, -# which the engine's `wasmi default-features = false` exists to keep out of the consensus -# path. Linked from src/tests/libxrpl only, so the shipped node cannot contain it. add_xrpl_crate(xrpl_wasm_testkit CRATE xrpl_wasm_testkit FILES lib.rs) -# The wasm bridge `include!`s a project header, so its generated translation unit needs -# the project's include root. Deliberately only that: a header reached from here must -# stay light enough to compile without the Boost paths this target does not get, which -# is why `HostContext.h` forward-declares `xrpl::HostFunctions` instead of including it. target_include_directories( xrpl_wasm_vm_ffi_cxxbridge PRIVATE ${CMAKE_SOURCE_DIR}/include