-
Notifications
You must be signed in to change notification settings - Fork 394
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
x86_64-linux: lower glibc version requirement to 2.17 (compatible with centos 7) #501
Conversation
build the debian sysroot (linux-image.sh) in a ubuntu container
can't be used within the CI environment (?)
$ cargo install --path . --force
(..)
$ cross build --target x86_64-unknown-linux-gnu --release
(..)
/target/release/build/cross-dbf0d01025c300c1/build-script-build: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /target/release/build/cross-dbf0d01025c300c1/build-script-build) interesting the first (I was under the impression that |
before invoking cross avoids runtime failures. only required when target = x86_64-linux-gnu
that has failed twice in a row so the URL is probably gone; let's figure out which new URL to use ... |
PR #502 should fix the freebsd failure |
Now that #502 has landed, CI for this PR should be green. Could I get some feedback on this PR? (@reitermarkus maybe?) |
bors try |
Co-authored-by: Markus Reiter <me@reitermark.us>
tryBuild failed: |
(the "try" build failed due to a network error but the 'multi-stage' commit is green on CI) |
bors r+ |
501: x86_64-linux: lower glibc version requirement to 2.17 (compatible with centos 7) r=reitermarkus a=japaric This PR lowers the glibc version requirement of the x86_64-linux-gnu binaries produced by cross to v2.17 (from v2.23). With this change x86_64-linux applications build with cross can run on LTS distributions like centos 7. The implementation consists of changing the base image of the x86_64-gnu image from ubuntu:16.04 to centos:7 The existing scripts were adapted as follows: - package management has been refactored into `install_packages` and `purge_packages` functions that work under ubuntu and centos - added `if_centos` and `if_ubuntu` helper functions to handle steps specific to either distribution - `qemu.sh`: centos doesn't provide libattr, libcap and libpixman as static libraries so those libraries have to be compiled when the script runs on centos - `linux-image.sh`: this script is very ubuntu/debian specific as it relies on apt-get to build a minimal debian sysroot. Instead of modifying the script to make it work on centos, I opted for running the script in a fresh ubuntu:16.04 docker container and copying the output debian sysroot (`/qemu`) into the centos based image Co-authored-by: Jorge Aparicio <jorge.aparicio@ferrous-systems.com> Co-authored-by: Jorge Aparicio <jorge@japaric.io>
Build failed: |
bors retry |
501: x86_64-linux: lower glibc version requirement to 2.17 (compatible with centos 7) r=reitermarkus a=japaric This PR lowers the glibc version requirement of the x86_64-linux-gnu binaries produced by cross to v2.17 (from v2.23). With this change x86_64-linux applications build with cross can run on LTS distributions like centos 7. The implementation consists of changing the base image of the x86_64-gnu image from ubuntu:16.04 to centos:7 The existing scripts were adapted as follows: - package management has been refactored into `install_packages` and `purge_packages` functions that work under ubuntu and centos - added `if_centos` and `if_ubuntu` helper functions to handle steps specific to either distribution - `qemu.sh`: centos doesn't provide libattr, libcap and libpixman as static libraries so those libraries have to be compiled when the script runs on centos - `linux-image.sh`: this script is very ubuntu/debian specific as it relies on apt-get to build a minimal debian sysroot. Instead of modifying the script to make it work on centos, I opted for running the script in a fresh ubuntu:16.04 docker container and copying the output debian sysroot (`/qemu`) into the centos based image Co-authored-by: Jorge Aparicio <jorge.aparicio@ferrous-systems.com> Co-authored-by: Jorge Aparicio <jorge@japaric.io>
Build failed: |
it's always the bors retry |
Build succeeded: |
This PR lowers the glibc version requirement of the x86_64-linux-gnu binaries produced by cross to v2.17 (from v2.23). With this change x86_64-linux applications build with cross can run on LTS distributions like centos 7.
The implementation consists of changing the base image of the x86_64-gnu image from ubuntu:16.04 to centos:7
The existing scripts were adapted as follows:
install_packages
andpurge_packages
functions that work under ubuntu and centosif_centos
andif_ubuntu
helper functions to handle steps specific to either distributionqemu.sh
: centos doesn't provide libattr, libcap and libpixman as static libraries so those libraries have to be compiled when the script runs on centoslinux-image.sh
: this script is very ubuntu/debian specific as it relies on apt-get to build a minimal debian sysroot. Instead of modifying the script to make it work on centos, I opted for running the script in a fresh ubuntu:16.04 docker container and copying the output debian sysroot (/qemu
) into the centos based image