From c1bcd2269c590305cad42e000cd39fad49158e3e Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 27 Jul 2011 15:59:53 +0100 Subject: [PATCH] cmake: always enable GNU and recent-POSIX extensions, like autoconf does If the C library is (e)glibc, this allows use of POSIX, BSD, SVID, GNU, etc., extensions to ISO C, regardless of using -ansi or not. Not doing this broke the cmake build on Linux since commit 18b08180, which added AC_USE_SYSTEM_EXTENSIONS to configure.ac (and removed _GNU_SOURCE from files that use it) without also updating the cmake build system. SO_PEERCRED is defined unconditionally, but struct ucred is considered to be a GNU extension, so can't be used under _GNU_SOURCE. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=29228 Reviewed-by: Will Thompson --- cmake/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 04f318a..750e3f1 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -100,6 +100,9 @@ OPTION(DBUS_DISABLE_ASSERTS "Disable assertion checking" OFF) option (DBUS_ENABLE_STATS "enable bus daemon usage statistics" OFF) +# analogous to AC_USE_SYSTEM_EXTENSIONS in configure.ac +add_definitions(-D_POSIX_C_SOURCE=199309L -D_GNU_SOURCE) + # do config checks INCLUDE(ConfigureChecks.cmake) -- 2.7.4