__GNU_LIBRARY__, and so on are defined in the same header (
features.h) that processes the feature-test macros. Of course that couldn't possibly work, so all !50 (merged) actually did was bring back the warning.
I'm not sure we actually can do a conditional define here, so I'm back to the
_GNU_SOURCE idea, but suggestions are welcome.