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]

Reply via email to