aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLogan Chien <tzuhsiang.chien@gmail.com>2013-05-29 18:23:17 +0800
committerLogan Chien <tzuhsiang.chien@gmail.com>2014-09-10 03:46:59 +0800
commit0d033108b0fcf467e0367f9d933724178534a341 (patch)
tree661380347db3be0a65c56d85faf028fc903ef58a
parent6bd3ee2c81d31a69eb5eab790782e13c96eaba26 (diff)
downloadclang-0d033108b0fcf467e0367f9d933724178534a341.tar.gz
[ndk][pndk] Define __le32__ for target le32-none-ndk
Also define whatever LinuxTargetInfo define, because target le32-none-ndk implies Android which is based on Linux.
-rw-r--r--lib/Basic/Targets.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 7b21db46e0..8cfa8dfc73 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -682,8 +682,15 @@ class AndroidTargetInfo : public OSTargetInfo<Target> {
protected:
virtual void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
MacroBuilder &Builder) const {
- Builder.defineMacro("__ANDROID__");
+ DefineStd(Builder, "unix", Opts);
+ DefineStd(Builder, "linux", Opts);
+ Builder.defineMacro("__gnu_linux__");
Builder.defineMacro("__ELF__");
+ Builder.defineMacro("__ANDROID__", "1");
+ if (Opts.POSIXThreads)
+ Builder.defineMacro("_REENTRANT");
+ if (Opts.CPlusPlus)
+ Builder.defineMacro("_GNU_SOURCE");
}
public:
AndroidTargetInfo(const llvm::Triple &triple)
@@ -5909,6 +5916,9 @@ class AndroidNDKTargetInfo : public TargetInfo {
public:
AndroidNDKTargetInfo(const llvm::Triple& Triple);
+ virtual void getArchDefines(const LangOptions &Opts,
+ MacroBuilder &Builder) const;
+
virtual void getTargetDefines(const LangOptions& Opts,
MacroBuilder& Builder) const;
@@ -5968,10 +5978,17 @@ AndroidNDKTargetInfo::AndroidNDKTargetInfo(const llvm::Triple& Triple)
"v128:64:128-a0:0:64-n32-S64";
}
-void AndroidNDKTargetInfo::getTargetDefines(const LangOptions& Opts,
+void AndroidNDKTargetInfo::getArchDefines(const LangOptions& Opts,
MacroBuilder& Builder) const {
+ Builder.defineMacro("__le32__");
Builder.defineMacro("__ANDROID__");
+}
+
+void AndroidNDKTargetInfo::getTargetDefines(const LangOptions& Opts,
+ MacroBuilder& Builder) const {
Builder.defineMacro("__ELF__");
+ Builder.defineMacro("__LITTLE_ENDIAN__");
+ getArchDefines(Opts, Builder);
}
} // end anonymous namespace