GLIBC_2.22 not found on RHEL7/ppc64le
If you try to run the openjdk builds (default or OpenJ9) on RHEL7/ppc64le the builds fail due to a missing symbol GLIBC_2.22 in the lib/server/libjvm.so or lib/compressedrefs/libj9jit29.so shared libraries. We need to consider whether this is a concern (I suspect so, since it fails on the latest RHEL7.4 which I expect some people will be using) and whether we really need this dependency. As per the extract below, it works ok on the OpenJDK8 builds:
[root@csp00023 shm]# jdk8u144-b01/bin/java -version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment (build 1.8.0-internal-jenkins_2017_07_27_20_20-b00)
OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode)
[root@csp00023 shm]# jdk-9+181/bin/java -version
Error: dl failure on line 754
Error: failed /dev/shm/jdk-9+181/lib/server/libjvm.so, because /lib64/ld64.so.2: version `GLIBC_2.22' not found (required by /dev/shm/jdk-9+181/lib/server/libjvm.so)
[root@csp00023 shm]# jdk-9+181.j9/bin/java -version
JVMJ9VM011W Unable to load j9jit29: /lib64/ld64.so.2: version `GLIBC_2.22' not found (required by /dev/shm/jdk-9+181.j9/lib/compressedrefs/libj9jit29.so)
JVMJ9VM013W Initialization error in function j9dyn29(7): failed to initialize JImage interface
JVMJ9VM013W Initialization error in function VMInitStages(7): cannot initialize modules path
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
[root@csp00023 shm]#
(Note to anyone picking this up fo further investigation: At the moment jenkins is building using the following OSs. I've included the data for x86-64 build environments as well since the same issue does NOT occur on RHEL7/x86-64)
| Build | architecture | Jenkins label | OS built on | libc version |
|---|---|---|---|---|
| 8u144-b01 | ppc64le | ppc64le&&fedora |
Fedora24 | 2.23.1 |
| 9+181 | ppc64le | ppc64le&&fedora |
Fedora24 | 2.23.1 |
| 9+181-j9 | ppc64le | ppc64le&&openj9 |
Ubuntu ~~16.10~~17.04 | 2.24-3ubuntu2.2 |
| 8u144-b01 | x86-64 | linux&&x64&&openj9 |
Ubuntu 16.04.~~2~~3 | 2.23-0ubuntu9 |
| 9+181 | x86-64 | linux&&x64&&build |
Ubuntu 16.04.~~2~~3 | 2.23-0ubuntu9 |
| 9+181-j9 | x86-64 | linux&&x64&&openj9 |
Ubuntu 16.04.~~2~~3 | 2.23-0ubuntu9 |
I'm not sure any of this is conclusive since all machines have a later libc than 2.22, and the default vs openj9 machines have different levels (Fedora 24 vs Ubuntu 17.04) yet both builds seem to behave the same.
#DISCLAIMER Tags and OSs taken from the current jenkins configuration so may not reflect what was in place at the time the builds took place
Reference to this issue added to https://github.com/AdoptOpenJDK/openjdk-build/wiki/%5BWIP%5D-Minimum-OS-levels