Review Request 119696: KDECompilerSettings: Be more portable across libc's.

Pino Toscano pino at kde.org
Sun Aug 10 18:53:54 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119696/#review64195
-----------------------------------------------------------



kde-modules/KDECompilerSettings.cmake
<https://git.reviewboard.kde.org/r/119696/#comment44849>

    There's also GNU/kFreeBSD which uses GNU libc. Its CMAKE_SYSTEM_NAME is "kFreeBSD", so please also match "k.*BSD" if you do OS-based selection.
    
    But, in general, if you are really looking at the libc like your change hints, then do a compiler check, like I did in kde-dev-utils.git/kmtrace/CMakeLists.txt.


- Pino Toscano


On Ago. 10, 2014, 5:39 p.m., Raphael Kubo da Costa wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119696/
> -----------------------------------------------------------
> 
> (Updated Ago. 10, 2014, 5:39 p.m.)
> 
> 
> Review request for Extra Cmake Modules and Alex Merry.
> 
> 
> Repository: extra-cmake-modules
> 
> 
> Description
> -------
> 
> Defining _XOPEN_SOURCE to 500 is too restrictive: it corresponds to
> _POSIX_C_SOURCE 199506L, and hides several symbols that standard
> libraries like libc++ expect to find, leading to errors like this on
> FreeBSD:
> 
>   In file included from /tmp/attica/src/accountbalance.cpp:21:
>   In file included from /tmp/attica/src/accountbalance.h:25:
>   In file included from /usr/local/include/qt5/QtCore/QString:1:
>   In file included from /usr/local/include/qt5/QtCore/qstring.h:50:
>   In file included from /usr/include/c++/v1/string:437:
>   In file included from /usr/include/c++/v1/string:437:
>   /usr/include/c++/v1/cstdio:143:9: error: no member named 'snprintf' in the global namespace
>   using ::snprintf;
>         ~~^
> 
> This isn't a problem on Linux because defining _GNU_SOURCE enables a lot
> more features that are not made available on other libc implementations
> where it does not have any effect.
> 
> Instead, stop defining _XOPEN_SOURCE at all and leave it up to the
> platform to show or hide as many symbols as necessary if no
> standards-related defines are set, and only set _GNU_SOURCE on systems
> where it is actually meaningful (Linux and Hurd), as we were doing
> before 81233a52 ("Organise KDECompilerSettings.cmake more logically").
> 
> 
> Diffs
> -----
> 
>   kde-modules/KDECompilerSettings.cmake fdc930e48e489696e137c546fd7e00e0c4797243 
> 
> Diff: https://git.reviewboard.kde.org/r/119696/diff/
> 
> 
> Testing
> -------
> 
> Attica builds on FreeBSD.
> 
> 
> Thanks,
> 
> Raphael Kubo da Costa
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-buildsystem/attachments/20140810/ea43d364/attachment.html>


More information about the Kde-buildsystem mailing list