Do not change glibc feature selection macros in unsupported ways #674
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
__USE_*
macros are for glibc internal use only and must not be changed. The_*_SOURCE
macros must be defined before the first glibc header file is included. If these rules are not followed, glibc header changes often introduce implicit function declarations or break the build in other ways.The most straightforward solution is to define _GNU_SOURCE at the CMake level. The basename function is not used, and the sources already deal with the strerror_r API variant for _GNU_SOURCE. (An alternative approach could remove the strerror_r handling, and build with -D_XOPEN_SOURCE -D_DEFAULT_SOURCE, with a definition of _GNU_SOURCE at the start of src/tcp/tcp.c)
Related to: