Builder.defineMacro("__ELF__");
if (Opts.POSIXThreads)
Builder.defineMacro("_REENTRANT");
+ if (Opts.CPlusPlus)
+ Builder.defineMacro("_GNU_SOURCE");
}
public:
LinuxTargetInfo(const std::string& triple)
Builder.defineMacro("__CYGWIN__");
Builder.defineMacro("__CYGWIN32__");
DefineStd(Builder, "unix", Opts);
+ if (Opts.CPlusPlus)
+ Builder.defineMacro("_GNU_SOURCE");
}
};
} // end anonymous namespace
// C++ translation unit.
Builder.defineMacro("__cplusplus", "199711L");
Builder.defineMacro("__private_extern__", "extern");
-
- // Define _GNU_SOURCE on platforms where we expect to use glibc.
- switch (TI.getTriple().getOS()) {
- case llvm::Triple::Cygwin:
- case llvm::Triple::MinGW64:
- case llvm::Triple::MinGW32:
- case llvm::Triple::Linux:
- case llvm::Triple::Solaris:
- case llvm::Triple::AuroraUX:
- Builder.defineMacro("_GNU_SOURCE");
- break;
-
- case llvm::Triple::Darwin:
- case llvm::Triple::DragonFly:
- case llvm::Triple::FreeBSD:
- case llvm::Triple::UnknownOS:
- case llvm::Triple::Lv2:
- case llvm::Triple::NetBSD:
- case llvm::Triple::OpenBSD:
- case llvm::Triple::Psp:
- case llvm::Triple::Win32:
- case llvm::Triple::Haiku:
- break;
- }
}
if (LangOpts.Microsoft) {