On Friday 14 November 2014 17:36:10 Aleix Pol wrote: > On Fri, Nov 14, 2014 at 4:23 PM, Milian Wolff <[email protected]> wrote: > > Hello all. > > > > Since recently I get spammed by warnings such as this one: > > > > /ssd/milian/projects/kde4/kdelibs/kdecore/network/klocalsocket_unix.cpp:22 > > : > > /usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and > > _SVID_SOURCE > > are deprecated, use _DEFAULT_SOURCE" [-Wcpp] > > > > # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use > > > > _DEFAULT_SOURCE" > > > > Why do we defined _BSD_SOURCE or _GNU_SOURCE in FindKDE4Internal.cmake? > > It's explained in kde-modules/KDECompilerSettings.cmake: > > # Enable everything in GNU libc. Any code using non-portable features > # needs to perform feature tests, but this ensures that any such > features > # will be found if they exist. > > I agree it should be revisited or something, especially if those are > deprecated now in favor of _DEFAULT_SOURCE.
Note that in extra-cmake-modules, we do NOT define _BSD_SOURCE, as noted in the paragraph below the one you pasted: # NB: we do NOT define _BSD_SOURCE, as with GNU libc that requires linking # against the -lbsd-compat library (it changes the behaviour of some # functions). This, however, means that strlcat and strlcpy are not # provided by glibc. However, it is defined in FindKDE4Internal.cmake from kdelibs 4.x in order to get strlcat and strlcpy. But doing so without linking against libbsd-compat is definitely not supported by the glibc developers. Alex
