Should we define _GNU_SOURCE in SwiftGlibc?

This topic has come up a couple of times in the past:

The latter post has some especially interesting details. Apparently they investigated this and found the source breakage to be minimal:

These days, we generate SwiftGlibC by pre-compiling a header file (well, a gybed header file), so it's a lot easier to add these sorts of feature macros without touching the compiler/clang importer.

Adding this would expose a lot of really useful platform functionality. If we can figure out the source breakage (if it even still applies), I think this would be a worthwhile change. Thoughts?

Well, I'd like to be able to use some extended features which are available on macOS but I was surprised that they aren't on Linux:


Yes, please!

I don't know if it makes sense to do this and I'd be concerned that it'd affect portability of the base Swift compiler. For end users I believe there should be workarounds (just create a bridging header, define it there, and reinclude headers?)

Do you mean to create the modules (Glibc) from scratch or something could be reused?