bytecodealliance / bytecodealliance/componentize-py

Build error: configure: error: You must get working getaddrinfo() function or pass the "--disable-ipv6" option to configure.

Ouverte
#139 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.