Joe McDonnell has uploaded this change for review. ( http://gerrit.cloudera.org:8080/24457
Change subject: IMPALA-14787: Add support for Redhat 10 ...................................................................... IMPALA-14787: Add support for Redhat 10 This adds a Redhat 10 container based on Rocky 10.1. There are various minor fix ups: - Redhat 10 only has JDK >=21 in its package repositories, but we haven't started testing with JDK 21 yet. This uses the Temurin OpenJDK 17 build from Adoptium to get the build going until we support JDK 21 (and know that Kudu builds with JDK 21). The assert-dependencies-present.py check for the Java version now accepts either 1.8.0 or 17.0. - Kudu doesn't detect some JDK 17 locations properly (including this Temurin install), so this adds logic to set JAVA_HOME when using JDK 17. This also helps with SLES 16. This can be removed when this is fixed on the Kudu side. - assert-dependencies-present.py uses distutils to check whether necessary binaries are present on the PATH. distutils requires an extra dependency and provides little value, so this switches to running which via subprocess. - Redhat 10's version of uname is more POSIX compliant, so "uname -p" (processor type) returns "unknown". This switches to using "uname -m" (machine hardware name), which provides the same information. - Newer distributions have system headers that rely on the __has_include(...) to avoid duplicate definitions. GCC versions before 12 improperly apply "fixincludes" on these headers and break them. In particular, this is a problem for "sys/mount.h" / "linux/mount.h" / "linux/fs.h". This patches GCC with the fix from GCC 12: https://github.com/gcc-mirror/gcc/commit/6bf383c37e6131a8e247e8a0997d55d65c830b6d - Redhat 10 switched to zlib-ng and zlib-ng installs CMake config files in /usr/lib64/cmake/ZLIB. Opentelemetry sets CMAKE_FIND_PACKAGE_PREFER_CONFIG=TRUE, so it prefers that zlib CMake config files over our toolchain zlib. This applies a patch to opentelemetry-cpp to force the find_packages(ZLIB ...) call to use the FindZLIB.cmake module to find our toolchain zlib rather than the system CMake config file. Change-Id: I9c965c0e262113df6320e46f2bb793afa16bda30 --- M Makefile M buildall.sh M docker/all/assert-dependencies-present.py M docker/all/postinstall.sh M docker/buildall.py A docker/redhat/adoptium.repo A docker/redhat10.df M in-docker.py M source/gcc/build.sh A source/gcc/gcc-10.4.0-patches/0003-Fix-fixincludes-for-__has_include.patch M source/kudu/build.sh A source/opentelemetry-cpp/opentelemetry-cpp-1.20.0-patches/0001-PATCH-Use-module-for-zlib-dep.patch 12 files changed, 209 insertions(+), 12 deletions(-) git pull ssh://gerrit.cloudera.org:29418/native-toolchain refs/changes/57/24457/1 -- To view, visit http://gerrit.cloudera.org:8080/24457 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: native-toolchain Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9c965c0e262113df6320e46f2bb793afa16bda30 Gerrit-Change-Number: 24457 Gerrit-PatchSet: 1 Gerrit-Owner: Joe McDonnell <[email protected]>
