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

Experiment: switch linux-arm64v8 from cross-compilation to native build #114

Closed
lovell opened this issue Oct 2, 2021 · 3 comments · Fixed by #115
Closed

Experiment: switch linux-arm64v8 from cross-compilation to native build #114

lovell opened this issue Oct 2, 2021 · 3 comments · Fixed by #115

Comments

@lovell
Copy link
Owner

lovell commented Oct 2, 2021

It looks like Debian 11 (Bullseye) has upgraded from glibc v2.29 to v2.31 as part of its promotion to "stable".

https://packages.debian.org/bullseye/libc6

glibc v2.29 was already a bit too "modern" and I expect v2.31 will cause even more problems.

Given we now have access to an ARM64 CPU via CircleCI, this future possible experiment is to try using a native build for the linux-arm64v8 platform, hopefully one that can still be run via QEMU on x64 if necessary.

@lovell
Copy link
Owner Author

lovell commented Oct 4, 2021

I took a quick look at this via commit 0566bb0 but librsvg fails to build due to our use of -Zbuild-std on ARM64.

cargo --locked build   --release --lib \
&& cd /deps/svg && /bin/sh ./libtool --silent --tag=CC   --mode=link gcc  -march=armv8-a -Os -fPIC -D_GLIBCXX_USE_CXX11_ABI=1 -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections  -L/target/lib -Wl,--gc-sections -Wl,-rpath='$ORIGIN/' -o librsvg_c_api.la _rsvg_dummy.lo && mv /deps/svg/target/release/liblibrsvg.a .libs/librsvg_c_api.a
error: -Zbuild-std requires --target
make[3]: *** [librsvg_c_api.la] Error 101

...which suggests we might have run into rust-lang/cargo#9451

@lovell
Copy link
Owner Author

lovell commented Oct 5, 2021

This is not going well.

We have detected an anomaly that violates the CircleCI Terms of Service.
We did not test this push because the project has been suspended. Please contact us if you think this is a mistake.

I've contacted CircleCI support, response time is "3 business days".

@lovell
Copy link
Owner Author

lovell commented Oct 11, 2021

Implemented via #115 - this means the prebuilt binaries provided by the future sharp v0.30.x (with the future libvips v8.12.x) will support glibc v2.17+ for Linux running on ARM64.

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

Successfully merging a pull request may close this issue.

1 participant