-
-
Notifications
You must be signed in to change notification settings - Fork 278
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
"symbol __cxa_thread_atexit_impl, version GLIBC_2.18 not defined" running maturin 0.8.3 wheel in manylinux2014_aarch64 #369
Comments
The issue looks similar to the one described in https://stackoverflow.com/questions/39744926/how-can-i-compile-a-rust-program-so-it-doesnt-use-cxa-thread-atexit-impl . |
As a workaround, I created a Docker image based on manylinux2014_aarch64 and including a compiled version of maturin 0.8.3: https://hub.docker.com/repository/docker/adlinktech/manylinux2014-aarch64-rust-nightly |
The aarch64 builder was building a wheel that was not actually manywheel compliant, as it was built with the glibc toolchain. If tried to fix this by building a musl binary as I already do for the other platforms, but now I'm getting errors when compiling dependencies (https://cloud.drone.io/PyO3/maturin/234/1/2), so publishing a fixed wheel is blocked on figuring out ci. |
I was able to compile maturin 0.9.3-alpha.3 in a Docker python:3.8-buster image after installing the aarch64 musl toolchain and applying this workaround for rust-lang/compiler-builtins#201 issue: rust-lang/rust#46651 (comment) Thus I think adding something like this to your .drone.yml commands should be good enough: wget http://musl.cc/aarch64-linux-musl-cross.tgz
tar xzf aarch64-linux-musl-cross.tgz -C /opt --strip-components=1
export PATH=$PATH:/opt/bin
echo '[target.aarch64-unknown-linux-musl]' >> ~/.cargo/config
echo 'linker = "aarch64-linux-musl-gcc"' >> ~/.cargo/config
echo 'rustflags = [ "-C", "target-feature=+crt-static", "-C", "link-arg=-lgcc" ]' >> ~/.cargo/config |
Unfortunately, this still fails at bzip-sys: https://cloud.drone.io/PyO3/maturin/270/1/2 Config: - name: publish
image: python:3.8-buster
environment:
PATH: "/root/.local/bin:/root/.cargo/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
MATURIN_PASSWORD:
from_secret: MATURIN_PASSWORD
commands:
# https://github.com/PyO3/maturin/issues/369#issuecomment-719615672
- wget -q http://musl.cc/aarch64-linux-musl-cross.tgz
- tar xzf aarch64-linux-musl-cross.tgz -C /opt --strip-components=1
- export PATH=$PATH:/opt/bin
- mkdir ~/.cargo
- echo '[target.aarch64-unknown-linux-musl]' >> ~/.cargo/config
- echo 'linker = "aarch64-linux-musl-gcc"' >> ~/.cargo/config
- echo 'rustflags = [ "-C", "target-feature=+crt-static", "-C", "link-arg=-lgcc" ]' >> ~/.cargo/config
- curl https://sh.rustup.rs -sSf | sh -s -- --profile minimal -y
- rustup target add aarch64-unknown-linux-musl
- cargo build --release --target aarch64-unknown-linux-musl
- cargo run --release --target aarch64-unknown-linux-musl -- publish -u konstin -b bin --no-sdist --target aarch64-unknown-linux-musl |
Please provide the following information:
python -V
): 3.8.6pip -V
): 20.2.3Yes: same issue with pip 20.2.4
pyo3
,rust-cpython
orcffi
):None, I just run
maturin --help
cargo build
work?Not relevant
/
)?Not on windows
Please list the exact steps required to reproduce your error with all command output and if possible with a repository:
maturin --help
:docker run --init -it --rm quay.io/pypa/manylinux2014_aarch64:latest /bin/bash -c "/opt/python/cp38-cp38/bin/pip install maturin && /opt/python/cp38-cp38/bin/maturin --version"
The result output is:
The text was updated successfully, but these errors were encountered: