mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-09 08:40:11 -06:00
Linux: Do not force 64-bit time_t on 32-bit archs with system libarchive
Commit 1b9e8f833f (Linux: Compile with 64-bit time_t even on 32-bit
architectures, 2025-06-26, v4.1.0-rc2~16^2) broke running with a
system-provided libarchive that uses a 32-bit `time_t`. If CMake
is configured to build with a system libarchive, assume the user
has taken responsibility to match `time_t` sizes.
Fixes: #27448
This commit is contained in:
@@ -68,8 +68,14 @@ endif()
|
|||||||
|
|
||||||
# Use 64-bit off_t on 32-bit Linux
|
# Use 64-bit off_t on 32-bit Linux
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
# ensure 64bit offsets are used for filesystem accesses for 32bit compilation
|
# Use 64-bit off_t even in 32-bit builds.
|
||||||
add_compile_definitions(_FILE_OFFSET_BITS=64 _TIME_BITS=64)
|
add_compile_definitions(_FILE_OFFSET_BITS=64)
|
||||||
|
|
||||||
|
# Use 64-bit time_t even in 32-bit builds. Skip this with
|
||||||
|
# system libarchive because its ABI uses the default time_t.
|
||||||
|
if (NOT CMAKE_USE_SYSTEM_LIBARCHIVE)
|
||||||
|
add_compile_definitions(_TIME_BITS=64)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Workaround for TOC Overflow on ppc64
|
# Workaround for TOC Overflow on ppc64
|
||||||
|
|||||||
Reference in New Issue
Block a user