GNU C Library (glibc) Compatibility
glibc
The GNU C Library (glibc) is using symbol versioning to provide backward compatibility for binaries compiled with older glibc. We use .symver
and patchelf to compile our binaries with newer glibc while keeping compatibility with older ones.
The required glibc versions are listed below:
linux64
:GLIBC_2.11 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.7
1
2
3
4
5
6linux32
:GLIBC_2.0 GLIBC_2.1 GLIBC_2.11 GLIBC_2.1.3 GLIBC_2.2 GLIBC_2.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.7
1
2
3
4
5
6
7
8
9linuxarm64
:GLIBC_2.0 GLIBC_2.17
1
2linuxarm32
:GLIBC_2.11 GLIBC_2.4 GLIBC_2.7
1
2
3
musl
For example, on Alpine Linux, you will very likely need gcompat (as well as libstdc++
) to use the library.
Here is a Dockerfile
snippet that is used to test this library on Alpine.
FROM eclipse-temurin:11-alpine
RUN mkdir /opt/app
COPY example-all.jar /opt/app
RUN apk add gcompat
RUN apk add libstdc++
RUN ldd --version || true
CMD ["java", "-jar", "/opt/app/example-all.jar", "--test"]
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8