From 14e21fa9922555f64f1f604284a83b9e3110ff28 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 16 Jul 2025 14:07:48 -0400 Subject: [PATCH 1/2] bootstrap: Compile with 64-bit time_t on 32-bit Linux if possible Extend commit 1b9e8f833f (Linux: Compile with 64-bit time_t even on 32-bit architectures, 2025-06-26, v4.1.0-rc2~16^2) to `bootstrap`. --- bootstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap b/bootstrap index 2ec6aacca7..d88a88db96 100755 --- a/bootstrap +++ b/bootstrap @@ -1848,7 +1848,7 @@ fi system_flags='' case "${cmake_system}" in # Ensure filesystem access uses 64-bit offsets even on 32-bit hosts. - *Linux*) system_flags='-D_FILE_OFFSET_BITS=64' ;; + *Linux*) system_flags='-D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64' ;; esac if test "x${system_flags}" != "x"; then cmake_c_flags="${cmake_c_flags} ${system_flags}" From a760a74abfbb6feb753daf2508453ce9eb508de4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 16 Jul 2025 14:12:34 -0400 Subject: [PATCH 2/2] Tests: Optionally skip tests requiring 64-bit time_t On some platforms, `time_t` is always 32-bit. Add an explicit option to skip tests that require 64-bit `time_t`. --- Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/string/RunCMakeTest.cmake | 1 + 2 files changed, 2 insertions(+) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index c92aac1484..e8fc9dad84 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -747,6 +747,7 @@ add_RunCMake_test(set_property) add_RunCMake_test(string -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR} + -DCMake_TEST_NO_64BIT_TIME=${CMake_TEST_NO_64BIT_TIME} ) add_RunCMake_test(test_include_dirs) add_RunCMake_test(BundleUtilities) diff --git a/Tests/RunCMake/string/RunCMakeTest.cmake b/Tests/RunCMake/string/RunCMakeTest.cmake index 6baf6214fc..b0aabb6ca2 100644 --- a/Tests/RunCMake/string/RunCMakeTest.cmake +++ b/Tests/RunCMake/string/RunCMakeTest.cmake @@ -23,6 +23,7 @@ run_cmake(JoinNoVar) run_cmake(Timestamp) if(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX" # FIXME: Needs 64-bit build AND NOT CMAKE_SYSTEM_NAME STREQUAL "SunOS" # FIXME: Needs 64-bit build + AND NOT CMake_TEST_NO_64BIT_TIME ) run_cmake(Timestamp2038) endif()