bytecodealliance / bytecodealliance/componentize-py
Build error: configure: error: You must get working getaddrinfo() function or pass the "--disable-ipv6" option to configure.
- Lingua principale
- Rust
- Stelle
- 277
- Fork
- 51
- Merge medio
- 12h 10m
- PR unite (30g)
- 10
Descrizione
I'm trying to build componentize-py with Nix and encountered the following problem. Am I missing something or maybe doing something obviously wrong?
Build error:
```
> error: failed to run custom build command for `componentize-py v0.16.0 (/build/source)`
>
> Caused by:
> process didn't exit successfully: `/build/source/target/release/build/componentize-py-a59959045623dda0/build-script-build` (exit status: 1)
> --- stdout
> cargo:rerun-if-changed=build.rs
>
> --- stderr
> Error: command `../../Tools/wasm/wasi-env ../../configure -C --host=wasm32-unknown-wasi --build=x86_64-pc-linux-gnu
> --with-build-python=/build/source/cpython/builddir/wasi/../build/python --prefix=/build/source/cpython/builddir/wasi/install --disable-test-modules --enable-ipv6` failed: configure: error: You must get working getaddrinfo() function or pass the "--disable-ipv6" option to configure.
>
> 💥 maturin failed
> Caused by: Failed to build a native library through cargo
> Caused by: Cargo build finished with "exit status: 101": `env -u CARGO "cargo" "rustc" "--jobs" "16" "--features" "pyo3/extension-module" "--target" "x86_64-unknown-linux-gnu" "--message-format" "json-render-diagnostics" "--offline" "--manifest-path" "/build/source/Cargo.toml" "--release" "--lib" "--crate-type" "cdylib" "--" "-C" "strip=symbols"`
```
I've dug a bit, and configure fails because `netdb.h` header is missing:
```
cpython/builddir/wasi/config.log
configure:22403: checking for getaddrinfo
configure:22426: /nix/store/jflmkk9kx2cw7qwxij7iw9fzphjv194s-wasi-sdk-wasi-sockets-alpha-5/opt/wasi-sdk/bin/clang --sysroot=/nix/store/jflmkk9kx2cw7qwxij7iw9fzphjv194s-wasi-sdk-wasi-sockets-alpha-5/opt/wasi-sdk/share/wasi-sysroot -o conftest conftest.c -ldl -lwasi-emulated-signal -lwasi-emulated-getpid -lwasi-emulated-process-clocks >&5
conftest.c:201:10: fatal error: 'netdb.h' file not found
201 | #include
| ^~~~~~~~~
1 error generated.
```
I'm using `wasi-sockets-alpha-5` tag (`f3a1f89915357e0b00fb269a34f92b6d0bafd4c1`) for wasi-sdk, as specified in `CONTRIBUTING.md`. It seem to omit `netdb.h` for target `wasm32-wasip1` , which is synonymous with `wasm32-wasi`:
```
wasi-sdk/src/wasi-libc/Makefile
ifeq ($(WASI_SNAPSHOT), p1)
MUSL_OMIT_HEADERS += "netdb.h"
endif
```
`componentize-py` revision: https://github.com/bytecodealliance/componentize-py/commit/c50822c825b4333ff41a0ea3cd9e0c9bc3df49da
`wasi-sdk` revision: https://github.com/dicej/wasi-sdk/commit/f3a1f89915357e0b00fb269a34f92b6d0bafd4c1
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia con build.rs e cpython/builddir/wasi/config.log, quindi confronta il controllo getaddrinfo che fallisce con la voce del Makefile di wasi-sdk wasi-libc che omette netdb.h per WASI snapshot p1. Esamina CONTRIBUTING.md per la revisione di wasi-sdk specificata e riproduci la build Nix; il lavoro è completato quando la build di componentize-py termina senza l’errore di configure.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python, rust, wasm
- Ambito
- build-system
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100