Addresses DE 18
Freestanding implementations do not (necessarily) have support for multiple threads (see [intro.multithread]). Applications and libraries may want to optimize for the absence of threads. I therefore propose a preprocessor macro to indicate whether multiple threads can occur.
There is ample prior implementation experience for this feature with various spellings of the macro name. For example, gcc implicitly defines _REENTRANT if multi-threading support is selected on the compiler command-line.
While this is submitted as a library issue, it may be more appropriate to add the macro in 16.8 cpp.predefined in the core language.
See also N2693.