JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
45.8k stars 5.49k forks source link

[PPC] Release binaries are built against glibc 2.22 instead of 2.17 #39178

Closed jdadavid closed 3 years ago

jdadavid commented 3 years ago

I have downladed the ppc64le version of julia-1.6.0-beta1, it does not work on m system

[jdavid00@login02 ~]$ julia-1.6.0-beta1-org
ERROR: Unable to load dependent library /m100/home/userexternal/jdavid00/local/julia-b84990e1ac-org/bin/../lib/julia/libjulia-internal.so.1
Message:/lib64/ld64.so.2: version `GLIBC_2.22' not found (required by /m100/home/userexternal/jdavid00/local/julia-b84990e1ac-org/bin/../lib/julia/libjulia-internal.so.1)
[jdavid00@login02 ~]$

because on the system (Redhat 7.6) the glibc is 2.17, whence I infer that 2.22 was expected

(cross posted from https://discourse.julialang.org/t/julia-v1-6-0-beta1-is-now-available/53065/27)

[jdavid00@login02 ~]$ uname -a
Linux login02 4.14.0-115.14.1.el7a.ppc64le #1 SMP Thu Oct 3 05:32:24 EDT 2019 ppc64le ppc64le ppc64le GNU/Linux
[jdavid00@login02 j160b1]$ cat /etc/os-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.6 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
...
[jdavid00@login02 ~]$ rpm -qi glibc
Name        : glibc
Version     : 2.17
Release     : 260.el7
Architecture: ppc64le
Install Date: Fri 17 Apr 2020 06:22:24 PM CEST
...

I am not sure it warrants the qualification of issue, (I can manage by recompilation of source), but nevertheless I post it here since asked on Discourse

vchuravy commented 3 years ago

@staticfloat can we downgrade the OSU VMs?

vtjnash commented 3 years ago

I thought the PlatformSupportLibraries dep should be providing that file for you. Is it missing from the download and/or do you have any LD* environment variables set?

giordano commented 3 years ago

CompilerSupportLibraries_jll.jl has all but the C library

staticfloat commented 3 years ago

Yeah, we don't provide ld.so itself. I mean, we could, but without some extra heroics, it would only work for the first executable in the chain, since anything else we try to execve will naturally look up /lib64/ld64.so.

We're currently using Debian 9 as the base image for our ppc64le bots. I'm trying to replace them with CentOS 7, which will give a glibc version of 2.17. Here's a candidate build with such an environment; can someone in this thread try it out and see if it works for you: https://s3.amazonaws.com/julialangnightlies/pretesting/linux/ppc64le/1.6/julia-b84990e1ac-linuxppc64.tar.gz

jdadavid commented 3 years ago

I can confirm it works. Thank you @staticfloat !

vchuravy commented 3 years ago

This should be fixed with rc1 please re-open if it is an issue again.