diff options
author | Raul Tambre <raul@tambre.ee> | 2022-11-10 20:23:35 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-11-10 21:04:38 (GMT) |
commit | 019af622941ba93470c96cd148d4ca26941aafd0 (patch) | |
tree | 3b2d24f32acad6b6470fbddece62d619b3c075bf /Utilities/cmexpat | |
parent | 2780c3c683ae3e11807c897dc519a49d8fd2c63f (diff) | |
download | CMake-019af622941ba93470c96cd148d4ca26941aafd0.zip CMake-019af622941ba93470c96cd148d4ca26941aafd0.tar.gz CMake-019af622941ba93470c96cd148d4ca26941aafd0.tar.bz2 |
expat: Activate POSIX APIs even without compiler extensions
Compile with the preprocessor definitions necessary for the `arc4random`
family so it's available even when compiler extensions are not enabled.
Similar things are done in cmbzip2, cmcurl, cmlibarchive, cmliblizma and
cmlibuv.
This issue surfaced on a nightly bot after glibc 2.36 added arc4random
functions. cmlibarchive defines the necessary macro, but also relies on
`HAVE_ARC4RANDOM_BUF`. cmlibarchive's check with the necessary macro
defined was skipped due to cmexpat running the same check before, but
without the macros, and it being cached.
This extends commit c7c3e39e4f (Utilities: Activate POSIX APIs even
without compiler extensions, 2022-06-02, v3.24.0-rc1~34^2) to cover our
build of expat too.
Issue: #20454
Diffstat (limited to 'Utilities/cmexpat')
-rw-r--r-- | Utilities/cmexpat/CMakeLists.txt | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Utilities/cmexpat/CMakeLists.txt b/Utilities/cmexpat/CMakeLists.txt index 9a62b79..81dfee3 100644 --- a/Utilities/cmexpat/CMakeLists.txt +++ b/Utilities/cmexpat/CMakeLists.txt @@ -6,6 +6,12 @@ ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall") ENDIF() +# Activate POSIX APIs. +if(CMAKE_SYSTEM_NAME MATCHES "^(Linux)$") + add_definitions(-D_DEFAULT_SOURCE -D_BSD_SOURCE) + string(APPEND CMAKE_REQUIRED_DEFINITIONS " -D_DEFAULT_SOURCE -D_BSD_SOURCE") +endif() + include(ConfigureChecks.cmake) configure_file(expat_config.h.cmake expat_config.h @ONLY) |