Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Put libc FFI behind feature flag #40

Open
kylebarron opened this issue Aug 30, 2024 · 6 comments
Open

Put libc FFI behind feature flag #40

kylebarron opened this issue Aug 30, 2024 · 6 comments

Comments

@kylebarron
Copy link

I depend on polylabel-rs from geoarrow-rs. While making updates to compile the geoarrow Python bindings for emscripten (for use in pyodide), I discovered that this crate can't compile for wasm32-unknown-emscripten.

Would you be able to separate out the FFI parts?

I see that libc is marked as optional = true but it still fails to compile with emcc:

pip install -U maturin pyodide-build

git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
PYODIDE_EMSCRIPTEN_VERSION=$(pyodide config get emscripten_version)
./emsdk install ${PYODIDE_EMSCRIPTEN_VERSION}
./emsdk activate ${PYODIDE_EMSCRIPTEN_VERSION}
source emsdk_env.sh

RUSTUP_TOOLCHAIN=nightly cargo build --target wasm32-unknown-emscripten --no-default-features
   Compiling polylabel v3.2.0 (/Users/kyle/github/urschrei/polylabel-rs)
error: linking with `emcc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin:/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin/self-contained:/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin:/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin/self-contained:/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin:/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin/self-contained:/Users/kyle/github/geoarrow/geoarrow-rs/python/core/emsdk:/Users/kyle/github/geoarrow/geoarrow-rs/python/core/emsdk/upstream/emscripten:/Users/kyle/.pyenv/versions/3.11.8/bin:/opt/homebrew/Cellar/pyenv/2.3.36/libexec:/opt/homebrew/Cellar/pyenv/2.3.36/plugins/python-build/bin:/Users/kyle/local/micromamba/condabin:/Users/kyle/.pyenv/shims:/Users/kyle/.volta/bin:/Users/kyle/.pixi/bin:/Users/kyle/.local/bin:/Users/kyle/local/bin:/Users/kyle/local/miniconda/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Applications/quarto/bin:/Users/kyle/.cargo/bin:/Applications/iTerm.app/Contents/Resources/utilities:/opt/homebrew/opt/fzf/bin" VSLANG="1033" "emcc" "-s" "EXPORTED_FUNCTIONS=[]" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/polylabel.3updejbntm9f1bllqn3417s95.rcgu.o" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/polylabel.1kmycypubvsmlqpbfjkdqkmd3.rcgu.o" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libthiserror-4eb2ab3c336e3e20.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libgeo-f83f85fd5723ec26.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libfloat_next_after-d95b07f4974d6882.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libearcutr-8e20e222af4d53a1.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libitertools-beaceeb44a8c77b8.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libeither-467f114016b61c07.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libspade-81620635b86ab2ea.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libhashbrown-1ed1e51727433999.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libahash-744e4d13e3ede82d.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libonce_cell-d67ba89f4896de2e.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libcfg_if-51f29bf84becf9e5.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libzerocopy-b8d0bd450a6dc848.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/liballocator_api2-934e9558dfb16a38.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libgeographiclib_rs-f4f163eaf006d06d.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/liblibm-e90809c30a64b5e2.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/librobust-391a24fd2777e3db.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libgeo_types-79b0f057cf7967b4.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/librstar-cd4106b8263e5a6e.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libheapless-ab43586a410286d9.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libhash32-0de5b43fb8ad52f6.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libbyteorder-a107ce58b4f2da55.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libsmallvec-5003b6a2bb18a7cc.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libapprox-c3c1971ab039e689.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libnum_traits-217438d57356f072.rlib" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/liblog-77cb2c38971b59ba.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libstd-f71fa3f6a49bb3ab.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libpanic_unwind-f15382e092366651.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_demangle-1b2f74b68af910d9.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libstd_detect-f4c36649d621e7bc.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libhashbrown-316bb5c859b53a0e.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_alloc-801db24d35730e1d.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libminiz_oxide-1360b702a2f00a84.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libadler-3ec5ad6a74285da2.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libunwind-85a3af1fb20dba45.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libcfg_if-1039b6db9d3832c9.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/liblibc-d7d2fad8088b6c38.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/liballoc-449c1dc0c6df355b.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_core-0cd14f51a1ead17a.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libcore-d474966f72a3fd37.rlib" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libcompiler_builtins-42a4f2a021b8827a.rlib" "-l" "c" "-B/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin/gcc-ld" "-B/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin/gcc-ld" "-B/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin/gcc-ld" "--target=wasm32-unknown-emscripten" "-s" "DISABLE_EXCEPTION_CATCHING=0" "-L" "/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/self-contained" "-o" "/Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/polylabel.wasm" "-O0" "-g" "-sABORTING_MALLOC=0"
  = note: wasm-ld: error: /Users/kyle/github/geoarrow/geoarrow-rs/python/core/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libstandalonewasm.a(__main_void.o): undefined symbol: main
          emcc: error: '/Users/kyle/github/geoarrow/geoarrow-rs/python/core/emsdk/upstream/bin/wasm-ld -o /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/polylabel.wasm /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/polylabel.3updejbntm9f1bllqn3417s95.rcgu.o /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/polylabel.1kmycypubvsmlqpbfjkdqkmd3.rcgu.o /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libthiserror-4eb2ab3c336e3e20.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libgeo-f83f85fd5723ec26.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libfloat_next_after-d95b07f4974d6882.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libearcutr-8e20e222af4d53a1.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libitertools-beaceeb44a8c77b8.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libeither-467f114016b61c07.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libspade-81620635b86ab2ea.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libhashbrown-1ed1e51727433999.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libahash-744e4d13e3ede82d.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libonce_cell-d67ba89f4896de2e.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libcfg_if-51f29bf84becf9e5.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libzerocopy-b8d0bd450a6dc848.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/liballocator_api2-934e9558dfb16a38.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libgeographiclib_rs-f4f163eaf006d06d.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/liblibm-e90809c30a64b5e2.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/librobust-391a24fd2777e3db.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libgeo_types-79b0f057cf7967b4.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/librstar-cd4106b8263e5a6e.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libheapless-ab43586a410286d9.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libhash32-0de5b43fb8ad52f6.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libbyteorder-a107ce58b4f2da55.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libsmallvec-5003b6a2bb18a7cc.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libapprox-c3c1971ab039e689.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/libnum_traits-217438d57356f072.rlib /Users/kyle/github/urschrei/polylabel-rs/target/wasm32-unknown-emscripten/debug/deps/liblog-77cb2c38971b59ba.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libstd-f71fa3f6a49bb3ab.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libpanic_unwind-f15382e092366651.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_demangle-1b2f74b68af910d9.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libstd_detect-f4c36649d621e7bc.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libhashbrown-316bb5c859b53a0e.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_alloc-801db24d35730e1d.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libminiz_oxide-1360b702a2f00a84.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libadler-3ec5ad6a74285da2.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libunwind-85a3af1fb20dba45.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libcfg_if-1039b6db9d3832c9.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/liblibc-d7d2fad8088b6c38.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/liballoc-449c1dc0c6df355b.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_core-0cd14f51a1ead17a.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libcore-d474966f72a3fd37.rlib /Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/libcompiler_builtins-42a4f2a021b8827a.rlib -lc-debug -L/Users/kyle/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/wasm32-unknown-emscripten/lib/self-contained -L/Users/kyle/github/geoarrow/geoarrow-rs/python/core/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten /Users/kyle/github/geoarrow/geoarrow-rs/python/core/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/crt1.o -lGL -lal -lhtml5 -lstandalonewasm -lstubs-debug -lc-debug -ldlmalloc -lcompiler_rt -lc++ -lc++abi-debug -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-cxx-exceptions -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr /var/folders/42/5jr6891d4ds4xysz7q0rsghw0000gn/T/tmpfrnnygarlibemscripten_js_symbols.so --export-if-defined=__get_exception_message --export-if-defined=free --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_lib_deps --export-if-defined=__stop_em_lib_deps --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export=emscripten_stack_get_end --export=emscripten_stack_get_free --export=emscripten_stack_get_base --export=emscripten_stack_get_current --export=emscripten_stack_init --export=stackSave --export=stackRestore --export=stackAlloc --export=__errno_location --export=__cxa_is_pointer_type --export=__cxa_can_catch --export=__cxa_increment_exception_refcount --export=__cxa_decrement_exception_refcount --export=setThrew --export=__cxa_free_exception --export=__get_exception_message --export=free --export-table -z stack-size=65536 --initial-memory=16777216 --max-memory=16777216 --stack-first --table-base=1' failed (returned 1)
@urschrei
Copy link
Owner

Yep that should be no problem.

@urschrei
Copy link
Owner

Running cargo tree shows no libc build dependency:

polylabel v3.2.0 (/Users/sth/dev/polylabel-rs)
├── geo v0.28.0
│   ├── earcutr v0.4.3
│   │   ├── itertools v0.11.0
│   │   │   └── either v1.10.0
│   │   └── num-traits v0.2.18
│   │       └── libm v0.2.8
│   │       [build-dependencies]
│   │       └── autocfg v1.1.0
│   ├── float_next_after v1.0.0
│   ├── geo-types v0.7.13
│   │   ├── approx v0.5.1
│   │   │   └── num-traits v0.2.18 (*)
│   │   ├── num-traits v0.2.18 (*)
│   │   └── rstar v0.12.0
│   │       ├── heapless v0.8.0
│   │       │   ├── hash32 v0.3.1
│   │       │   │   └── byteorder v1.5.0
│   │       │   └── stable_deref_trait v1.2.0
│   │       ├── num-traits v0.2.18 (*)
│   │       └── smallvec v1.13.1
│   ├── geographiclib-rs v0.2.4
│   │   └── libm v0.2.8
│   ├── log v0.4.20
│   ├── num-traits v0.2.18 (*)
│   ├── robust v1.1.0
│   ├── rstar v0.12.0 (*)
│   └── spade v2.6.0
│       ├── hashbrown v0.14.3
│       │   ├── ahash v0.8.9
│       │   │   ├── cfg-if v1.0.0
│       │   │   ├── once_cell v1.19.0
│       │   │   └── zerocopy v0.7.32
│       │   │   [build-dependencies]
│       │   │   └── version_check v0.9.4
│       │   └── allocator-api2 v0.2.16
│       ├── num-traits v0.2.18 (*)
│       ├── robust v1.1.0
│       └── smallvec v1.13.1
├── num-traits v0.2.18 (*)
└── thiserror v1.0.57
    └── thiserror-impl v1.0.57 (proc-macro)
        ├── proc-macro2 v1.0.78
        │   └── unicode-ident v1.0.12
        ├── quote v1.0.35
        │   └── proc-macro2 v1.0.78 (*)
        └── syn v2.0.51
            ├── proc-macro2 v1.0.78 (*)
            ├── quote v1.0.35 (*)
            └── unicode-ident v1.0.12

But with the ffi feature it's present, as expected:

polylabel v3.2.0 (/Users/sth/dev/polylabel-rs)
├── geo v0.28.0
│   ├── earcutr v0.4.3
│   │   ├── itertools v0.11.0
│   │   │   └── either v1.10.0
│   │   └── num-traits v0.2.18
│   │       └── libm v0.2.8
│   │       [build-dependencies]
│   │       └── autocfg v1.1.0
│   ├── float_next_after v1.0.0
│   ├── geo-types v0.7.13
│   │   ├── approx v0.5.1
│   │   │   └── num-traits v0.2.18 (*)
│   │   ├── num-traits v0.2.18 (*)
│   │   └── rstar v0.12.0
│   │       ├── heapless v0.8.0
│   │       │   ├── hash32 v0.3.1
│   │       │   │   └── byteorder v1.5.0
│   │       │   └── stable_deref_trait v1.2.0
│   │       ├── num-traits v0.2.18 (*)
│   │       └── smallvec v1.13.1
│   ├── geographiclib-rs v0.2.4
│   │   └── libm v0.2.8
│   ├── log v0.4.20
│   ├── num-traits v0.2.18 (*)
│   ├── robust v1.1.0
│   ├── rstar v0.12.0 (*)
│   └── spade v2.6.0
│       ├── hashbrown v0.14.3
│       │   ├── ahash v0.8.9
│       │   │   ├── cfg-if v1.0.0
│       │   │   ├── once_cell v1.19.0
│       │   │   └── zerocopy v0.7.32
│       │   │   [build-dependencies]
│       │   │   └── version_check v0.9.4
│       │   └── allocator-api2 v0.2.16
│       ├── num-traits v0.2.18 (*)
│       ├── robust v1.1.0
│       └── smallvec v1.13.1
├── libc v0.2.153
├── num-traits v0.2.18 (*)
└── thiserror v1.0.57
    └── thiserror-impl v1.0.57 (proc-macro)
        ├── proc-macro2 v1.0.78
        │   └── unicode-ident v1.0.12
        ├── quote v1.0.35
        │   └── proc-macro2 v1.0.78 (*)
        └── syn v2.0.51
            ├── proc-macro2 v1.0.78 (*)
            ├── quote v1.0.35 (*)
            └── unicode-ident v1.0.12

@urschrei
Copy link
Owner

libc is pulled in by criterion in dev-dependencies, but that shouldn't be an issue here.

@kylebarron
Copy link
Author

Right... I'm kinda lost at what's happening. It looks like the core error is

  = note: wasm-ld: error: /Users/kyle/github/geoarrow/geoarrow-rs/python/core/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libstandalonewasm.a(__main_void.o): undefined symbol: main

but I can't see what's causing that.

@urschrei
Copy link
Owner

urschrei commented Sep 3, 2024

Will it build something like a stub library? I'm very confused.

@kylebarron
Copy link
Author

I don't know... FWIW this isn't high priority to me right now, but I'd never seen this error before, so I figured I might as well log it 🤷‍♂️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants