From c50e95e02688ee4b75585bbecfbd70987fa8c73d Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sun, 31 Aug 2025 23:38:43 +0200 Subject: [PATCH] support/testing: TestOpenJdk: remove stime() function call stime() has been deprecated in glibc 2.31 [1] and replaced with clock_settime(). Let's replace the stime() function call used in BR2_PACKAGE_OPENJDK_JNI_TEST sources with clock_settime(). Apply the same change as busybox [2]. Make sure that timeToSet has been zeroed. With that fixed, the test "Call Native Library to Set System Time" succeed: [BRTEST# java -cp /usr/bin JniTest Test: Get JNI Version passed Test: Read Native String Constant passed Test: Write Java String to Native Library passed Test: Write Java Char Array to Native Library passed Test: Write String Member to Native Library passed Test: Set String Member from Native Library passed Test: Execeute Java Function from Native Library passed Test: Instantiate Java Class passed Test: Call Native Library to Set System Time passed [BRTEST# echo $? 0 The last external toolchain using a glibc 2.30 was the Bootlin aarch64--glibc--bleeding-edge-2020.02-2, so since then TestOpenJdk is broken. Fixes: https://gitlab.com/buildroot.org/buildroot/-/jobs/11176774851 [1] https://lists.gnu.org/archive/html/info-gnu/2020-02/msg00001.html [2] https://git.busybox.net/busybox/commit/?id=d3539be8f27b8cbfdfee460fe08299158f08bcd9 [3] https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/readmes/aarch64--glibc--bleeding-edge-2020.02-2.txt Signed-off-by: Romain Naour Signed-off-by: Julien Olivain (cherry picked from commit 681b92664da62f807f836a8c28ecbf54b7ca6818) Signed-off-by: Thomas Perale --- .../br2-external/openjdk/package/openjdk-jni-test/native.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/native.c b/support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/native.c index ed87e345af..9e926a27d9 100644 --- a/support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/native.c +++ b/support/testing/tests/package/br2-external/openjdk/package/openjdk-jni-test/native.c @@ -29,8 +29,10 @@ void execute_function(void(*function)(void*), void* context) } void set_time_in_seconds(int seconds) { - time_t timeToSet = seconds; - stime(&timeToSet); + struct timespec timeToSet = { 0, 0 }; + + timeToSet.tv_sec = seconds; + clock_settime(CLOCK_REALTIME, &timeToSet); } void write_internal_time_in_seconds() {