mirror of
https://github.com/gabime/spdlog.git
synced 2025-01-24 06:32:06 +08:00
Use _FILE_OFFSET_BITS=64 when building tests on Linux 32-bit systems
When cross-compiling spdlog from x86-64 to armhf, I ran spdlog-utests via qemu-arm and noticed that the "daily_logger rotate" test was failing because count_files always returned zero. Investigation of count_files revealed that readdir was returning nullptr immediately and setting errno to 75, i.e. "value too large for defined data type". I suspected this had something to do with some 64 vs. 32-bit thing, so I added _FILE_OFFSET_BITS=64 to the build and that seems to have made readdir happy. It might be safe to add _FILE_OFFSET_BITS=64 for all Linux builds, but it only seems to be necessary for the 32-bit case (which is a pretty small audience these days -- I'm only building for armhf to target a Raspberry Pi 3 running Raspbian, which runs in 32-bit mode).
This commit is contained in:
parent
b848ff8db9
commit
288ea11534
@ -49,6 +49,12 @@ function(spdlog_prepare_test test_target spdlog_lib)
|
||||
spdlog_enable_sanitizer(${test_target})
|
||||
endif()
|
||||
add_test(NAME ${test_target} COMMAND ${test_target})
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
|
||||
if (CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
target_compile_definitions(${test_target} PRIVATE _FILE_OFFSET_BITS=64)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# The compiled library tests
|
||||
|
Loading…
Reference in New Issue
Block a user