--===============6481411295673800216== Content-Type: multipart/alternative; boundary="===============4279346087717472129==" --===============4279346087717472129== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/119696/#review64410 ----------------------------------------------------------- Ship it! This seems reasonable, and proper compile checks for the system libc is the right approach. - Alex Merry On Aug. 10, 2014, 7:06 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 Aug. 10, 2014, 7:06 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 (actually, on systems using glibc) 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 (ie. systems using glibc). > > > 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 > > --===============4279346087717472129== MIME-Version: 1.0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 7bit
This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/119696/

Ship it!

This seems reasonable, and proper compile checks for the system libc is the right approach.


- Alex Merry


On August 10th, 2014, 7:06 p.m. UTC, Raphael Kubo da Costa wrote:

Review request for Extra Cmake Modules and Alex Merry.
By Raphael Kubo da Costa.

Updated Aug. 10, 2014, 7:06 p.m.

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 (actually, on systems using glibc) 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 (ie. systems using glibc).

Testing

Attica builds on FreeBSD.

Diffs

  • kde-modules/KDECompilerSettings.cmake (fdc930e48e489696e137c546fd7e00e0c4797243)

View Diff

--===============4279346087717472129==-- --===============6481411295673800216== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Kde-buildsystem mailing list Kde-buildsystem@kde.org https://mail.kde.org/mailman/listinfo/kde-buildsystem --===============6481411295673800216==--