bytecodealliance / bytecodealliance/componentize-py
Build error: configure: error: You must get working getaddrinfo() function or pass the "--disable-ipv6" option to configure.
- Langage dominant
- Rust
- Étoiles
- 277
- Forks
- 51
- Merge moyen
- 12 h 10 min
- PR mergées (30 j)
- 10
Description
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
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par build.rs et cpython/builddir/wasi/config.log, puis comparez la vérification getaddrinfo en échec avec l’entrée du Makefile de wasi-sdk wasi-libc qui omet netdb.h pour WASI snapshot p1. Consultez CONTRIBUTING.md pour la révision de wasi-sdk spécifiée et reproduisez le build Nix ; c’est terminé lorsque le build de componentize-py se termine sans l’erreur de configure.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python, rust, wasm
- Domaine
- build-system
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100