solana icon indicating copy to clipboard operation
solana copied to clipboard

Wasm32 build fails for RPC-client due to recursive SDK dependency

Open XX opened this issue 2 years ago • 0 comments

Related with Support Wasm32 build for RPC-client issue: #28697

solana-rpc-client has dependency solana-sdk of the 1.15.0 version and solana-rpc-client-api and solana-account-decoder, each of which depends on spl-token-2022, which in turn depends on solana-sdk of the 1.14.8 version. Similary for solana-program.

This causes duplicate symbols when building a test using the solana-rpc-client for wasm32-unknown-unknown target:

error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "wasm" "--rsp-quoting=posix" "--export" "__wbgt_test_create_rpc_client_0" "--export" "main" "--export" "__wbindgen_describe___wbg_fetch_386f87a3ebf5003c" "--export"
  "__externref_drop_slice" "--export" "__externref_heap_live_count" "--export" "__externref_table_alloc" "--export" "__externref_table_dealloc" "--export" "__wbindgen_exn_store" "--export" "__wbindgen_free" ...
...
  = note: rust-lld: error: duplicate symbol: __wbg_keypair_free
          >>> defined in /home/xx/data/work/P2PV/solana/solana/target/wasm32-unknown-unknown/debug/deps/libsolana_sdk-f9491e3056c670c4.rlib(solana_sdk-f9491e3056c670c4.solana_sdk.19739f4f-cgu.8.rcgu.o)
          >>> defined in /home/xx/data/work/P2PV/solana/solana/target/wasm32-unknown-unknown/debug/deps/libsolana_sdk.rlib(solana_sdk.44stw7voh99xd55d.rcgu.o)
          
          rust-lld: error: duplicate symbol: __wbg_transaction_free
          >>> defined in /home/xx/data/work/P2PV/solana/solana/target/wasm32-unknown-unknown/debug/deps/libsolana_sdk-f9491e3056c670c4.rlib(solana_sdk-f9491e3056c670c4.solana_sdk.19739f4f-cgu.3.rcgu.o)
          >>> defined in /home/xx/data/work/P2PV/solana/solana/target/wasm32-unknown-unknown/debug/deps/libsolana_sdk.rlib(solana_sdk.s691cxtruslzvs0.rcgu.o)
          
          rust-lld: error: duplicate symbol: __wbg_message_free
          >>> defined in /home/xx/data/work/P2PV/solana/solana/target/wasm32-unknown-unknown/debug/deps/libsolana_program-895c1752bc88a2c4.rlib(solana_program-895c1752bc88a2c4.solana_program.2a5856f4-cgu.3.rcgu.o)
          >>> defined in /home/xx/data/work/P2PV/solana/solana/target/wasm32-unknown-unknown/debug/deps/libsolana_program.rlib(solana_program.1dd9wa2j7ve0t038.rcgu.o)
          
          rust-lld: error: duplicate symbol: __wbg_get_message_recent_blockhash
          >>> defined in /home/xx/data/work/P2PV/solana/solana/target/wasm32-unknown-unknown/debug/deps/libsolana_program-895c1752bc88a2c4.rlib(solana_program-895c1752bc88a2c4.solana_program.2a5856f4-cgu.3.rcgu.o)
          >>> defined in /home/xx/data/work/P2PV/solana/solana/target/wasm32-unknown-unknown/debug/deps/libsolana_program.rlib(solana_program.1dd9wa2j7ve0t038.rcgu.o)
...

XX avatar Jan 11 '23 08:01 XX