This is an automated email from the ASF dual-hosted git repository.
cnauroth pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new 6fae1cfed1c HADOOP-19776: trunk pre-commits for native code still try
to use Java 8
6fae1cfed1c is described below
commit 6fae1cfed1cef22b5cf4046d13dd1aa9d149d330
Author: Chris Nauroth <[email protected]>
AuthorDate: Mon Jan 12 18:01:55 2026 +0000
HADOOP-19776: trunk pre-commits for native code still try to use Java 8
Closes #8166
Signed-off-by: Ayush Saxena <[email protected]>
Reviewed-by: Cheng Pan <[email protected]>
---
dev-support/docker/Dockerfile_rockylinux_8 | 10 +++++++++-
dev-support/docker/pkg-resolver/packages.json | 4 ++++
.../hadoop-common/src/main/native/src/exception.c | 15 +++++++++------
3 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/dev-support/docker/Dockerfile_rockylinux_8
b/dev-support/docker/Dockerfile_rockylinux_8
index abea5105a39..06dacf049e0 100644
--- a/dev-support/docker/Dockerfile_rockylinux_8
+++ b/dev-support/docker/Dockerfile_rockylinux_8
@@ -43,6 +43,8 @@ RUN yum update -y \
&& yum install -y python3 \
&& yum install -y $(pkg-resolver/resolve.py rockylinux:8)
+RUN update-alternatives --set java java-17-openjdk.x86_64
+
RUN dnf --enablerepo=powertools install -y \
doxygen \
snappy-devel \
@@ -85,8 +87,14 @@ ENV INFOPATH="${GCC_HOME}/root/usr/share/info"
######
ENV MAVEN_HOME=/opt/maven
ENV PATH="${PATH}:${MAVEN_HOME}/bin"
+
+# jenkins.sh sets --java-home to a path with an "-amd64" suffix, which doesn't
+# exist on Rocky. Fake it with symlinks.
+RUN ln -s /usr/lib/jvm/java-17-openjdk /usr/lib/jvm/java-17-openjdk-amd64
+RUN ln -s /usr/lib/jvm/java-21-openjdk /usr/lib/jvm/java-21-openjdk-amd64
+
# JAVA_HOME must be set in Maven >= 3.5.0 (MNG-6003)
-ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0
+ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk
#######
# Set env vars for SpotBugs
diff --git a/dev-support/docker/pkg-resolver/packages.json
b/dev-support/docker/pkg-resolver/packages.json
index ef4d97ac0e5..86920f48a26 100644
--- a/dev-support/docker/pkg-resolver/packages.json
+++ b/dev-support/docker/pkg-resolver/packages.json
@@ -403,6 +403,10 @@
"temurin-17-jdk",
"openjdk-25-jdk"
],
+ "rockylinux:8": [
+ "java-17-openjdk-devel",
+ "java-21-openjdk-devel"
+ ],
"ubuntu:focal": [
"temurin-25-jdk",
"openjdk-8-jdk",
diff --git
a/hadoop-common-project/hadoop-common/src/main/native/src/exception.c
b/hadoop-common-project/hadoop-common/src/main/native/src/exception.c
index b4a9b812803..84c1ce30953 100644
--- a/hadoop-common-project/hadoop-common/src/main/native/src/exception.c
+++ b/hadoop-common-project/hadoop-common/src/main/native/src/exception.c
@@ -110,15 +110,18 @@ jthrowable newIOException(JNIEnv* env, const char *fmt,
...)
const char* terror(int errnum)
{
-// MT-Safe under Solaris or glibc >= 2.32 not supporting sys_errlist/sys_nerr
-#if defined(__sun)
- #define USE_STR_ERROR
-#elif defined(__GLIBC_PREREQ)
- #if __GLIBC_PREREQ(2, 32)
- #define USE_STR_ERROR
+/* STD_ERROR is the new standard. Alpine musc does not want to be 'detected'
it want to be pure and modern. Thus we detect the old glib and handle. */
+#ifdef __GLIBC__
+ #if defined(__GLIBC_PREREQ)
+ #if __GLIBC_PREREQ(2, 32)
+ #define USE_STR_ERROR
+ #endif
#endif
+#else
+ #define USE_STR_ERROR
#endif
+
#if defined(USE_STR_ERROR)
return strerror(errnum);
#else
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]