1
0
mirror of https://github.com/gabime/spdlog.git synced 2025-01-15 17:27:57 +00:00

Compare commits

...

2 Commits

Author SHA1 Message Date
Gabi Melman
685ad74d53
Merge pull request #1288 from yipdw/bugfix/use-64-bit-file-access
Use _FILE_OFFSET_BITS=64 when building on Linux 32-bit systems
2019-10-28 20:48:56 +02:00
David Yip
288ea11534 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).
2019-10-28 13:23:01 -05:00

View File

@ -48,7 +48,13 @@ function(spdlog_prepare_test test_target spdlog_lib)
if(SPDLOG_SANITIZE_ADDRESS)
spdlog_enable_sanitizer(${test_target})
endif()
add_test(NAME ${test_target} COMMAND ${test_target})
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