author | Mike Sullivan <Mike.Sullivan@Oracle.COM> |
Thu, 25 Aug 2016 23:02:28 -0700 | |
changeset 6703 | b41bd36a76a5 |
parent 6637 | 22d5f6c97e6f |
permissions | -rw-r--r-- |
6637
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
1 |
# 24378340 clang -fopenmp must include the path to the omp.h header file |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
2 |
# 24378393 clang -fopenmp must define _OPENMP to 201307 |
6512
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
3 |
# Solaris GCC Toolchain. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
4 |
# 3.9.X upstream. |
6637
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
5 |
--- tools/clang/lib/Frontend/CompilerInvocation.cpp 2016-01-12 13:01:56.000000000 -0800 |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
6 |
+++ tools/clang/lib/Frontend/CompilerInvocation.cpp 2016-08-08 08:15:38.179011582 -0700 |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
7 |
@@ -1424,7 +1424,7 @@ |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
8 |
return DefaultVisibility; |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
9 |
} |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
10 |
|
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
11 |
-static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
12 |
+static void ParseLangArgs(LangOptions &Opts, InputArgList &Args, InputKind IK, |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
13 |
DiagnosticsEngine &Diags) { |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
14 |
// FIXME: Cleanup per-file based stuff. |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
15 |
LangStandard::Kind LangStd = LangStandard::lang_unspecified; |
6512
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
16 |
@@ -1718,6 +1718,7 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
17 |
Opts.EmitAllDecls = Args.hasArg(OPT_femit_all_decls); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
18 |
Opts.PackStruct = getLastArgIntValue(Args, OPT_fpack_struct_EQ, 0, Diags); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
19 |
Opts.MaxTypeAlign = getLastArgIntValue(Args, OPT_fmax_type_align_EQ, 0, Diags); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
20 |
+ Opts.GXXABIVersion = getLastArgIntValue(Args, OPT_fabi_version_EQ, 0, Diags); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
21 |
Opts.PICLevel = getLastArgIntValue(Args, OPT_pic_level, 0, Diags); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
22 |
Opts.PIELevel = getLastArgIntValue(Args, OPT_pie_level, 0, Diags); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
23 |
Opts.Static = Args.hasArg(OPT_static_define); |
6637
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
24 |
@@ -1811,7 +1812,13 @@ |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
25 |
} |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
26 |
|
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
27 |
// Check if -fopenmp is specified. |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
28 |
- Opts.OpenMP = Args.hasArg(options::OPT_fopenmp); |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
29 |
+ Opts.OpenMP = Args.getLastArgNoClaim(options::OPT_fopenmp) || |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
30 |
+ Args.getLastArgNoClaim(options::OPT_fopenmp_EQ); |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
31 |
+ |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
32 |
+ // OpenMP implies threads. |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
33 |
+ if (Opts.OpenMP) |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
34 |
+ Opts.POSIXThreads = Opts.OpenMP; |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
35 |
+ |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
36 |
Opts.OpenMPUseTLS = |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
37 |
Opts.OpenMP && !Args.hasArg(options::OPT_fnoopenmp_use_tls); |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
38 |
Opts.OpenMPIsDevice = |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
39 |
@@ -1819,7 +1826,6 @@ |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
40 |
|
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
41 |
// Get the OpenMP target triples if any. |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
42 |
if (Arg *A = Args.getLastArg(options::OPT_omptargets_EQ)) { |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
43 |
- |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
44 |
for (unsigned i = 0; i < A->getNumValues(); ++i) { |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
45 |
llvm::Triple TT(A->getValue(i)); |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
46 |
|
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
47 |
### |
6512
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
48 |
--- tools/clang/lib/Frontend/InitHeaderSearch.cpp 2015-12-29 22:40:23.000000000 -0500 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
49 |
+++ tools/clang/lib/Frontend/InitHeaderSearch.cpp 2016-05-08 23:19:20.575431798 -0400 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
50 |
@@ -118,7 +118,7 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
51 |
// Add the path with sysroot prepended, if desired and this is a system header |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
52 |
// group. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
53 |
if (HasSysroot) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
54 |
- SmallString<256> MappedPathStorage; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
55 |
+ SmallString<PATH_MAX> MappedPathStorage; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
56 |
StringRef MappedPathStr = Path.toStringRef(MappedPathStorage); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
57 |
if (CanPrefixSysroot(MappedPathStr)) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
58 |
AddUnmappedPath(IncludeSysroot + Path, Group, isFramework); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
59 |
@@ -134,7 +134,7 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
60 |
assert(!Path.isTriviallyEmpty() && "can't handle empty path here"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
61 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
62 |
FileManager &FM = Headers.getFileMgr(); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
63 |
- SmallString<256> MappedPathStorage; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
64 |
+ SmallString<PATH_MAX> MappedPathStorage; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
65 |
StringRef MappedPathStr = Path.toStringRef(MappedPathStorage); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
66 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
67 |
// Compute the DirectoryLookup type. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
68 |
@@ -183,12 +183,16 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
69 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
70 |
// Add the multilib dirs |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
71 |
llvm::Triple::ArchType arch = triple.getArch(); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
72 |
- bool is64bit = arch == llvm::Triple::ppc64 || arch == llvm::Triple::x86_64; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
73 |
+ bool is64bit = arch == llvm::Triple::ppc64 || arch == llvm::Triple::x86_64 || |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
74 |
+ arch == llvm::Triple::sparcv9; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
75 |
if (is64bit) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
76 |
AddPath(Base + "/" + ArchDir + "/" + Dir64, CXXSystem, false); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
77 |
else |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
78 |
AddPath(Base + "/" + ArchDir + "/" + Dir32, CXXSystem, false); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
79 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
80 |
+ // Add GCC's "C" include dir |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
81 |
+ AddPath(Base + "/include", CXXSystem, false); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
82 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
83 |
// Add the backward dir |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
84 |
AddPath(Base + "/backward", CXXSystem, false); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
85 |
} |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
86 |
@@ -442,6 +446,7 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
87 |
break; // Everything else continues to use this routine's logic. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
88 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
89 |
case llvm::Triple::Linux: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
90 |
+ case llvm::Triple::Solaris: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
91 |
return; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
92 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
93 |
case llvm::Triple::Win32: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
94 |
@@ -463,7 +468,7 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
95 |
// Remove clang from foo/lib/clang |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
96 |
StringRef Lib = llvm::sys::path::parent_path(NoVer); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
97 |
// Remove lib from foo/lib |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
98 |
- SmallString<128> P = llvm::sys::path::parent_path(Lib); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
99 |
+ SmallString<PATH_MAX> P = llvm::sys::path::parent_path(Lib); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
100 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
101 |
// Get foo/include/c++/v1 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
102 |
llvm::sys::path::append(P, "include", "c++", "v1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
103 |
--- tools/clang/lib/Frontend/InitPreprocessor.cpp 2015-11-17 17:28:55.000000000 -0500 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
104 |
+++ tools/clang/lib/Frontend/InitPreprocessor.cpp 2016-05-08 23:19:20.575431798 -0400 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
105 |
@@ -484,17 +484,51 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
106 |
Builder.defineMacro("__clang_patchlevel__", "0"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
107 |
#endif |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
108 |
Builder.defineMacro("__clang_version__", |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
109 |
- "\"" CLANG_VERSION_STRING " " |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
110 |
- + getClangFullRepositoryVersion() + "\""); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
111 |
+ "\"" CLANG_VERSION_STRING " " CLANG_VERSION_TAGGED_STRING "\""); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
112 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
113 |
#undef TOSTR |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
114 |
#undef TOSTR2 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
115 |
if (!LangOpts.MSVCCompat) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
116 |
// Currently claim to be compatible with GCC 4.2.1-5621, but only if we're |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
117 |
// not compiling for MSVC compatibility |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
118 |
- Builder.defineMacro("__GNUC_MINOR__", "2"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
119 |
- Builder.defineMacro("__GNUC_PATCHLEVEL__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
120 |
+ if (TI.getTriple().getOS() == llvm::Triple::Solaris) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
121 |
+ Builder.defineMacro("__GNUC_MINOR__", "8"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
122 |
+ Builder.defineMacro("__GNUC_PATCHLEVEL__", "0"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
123 |
+ } else { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
124 |
+ Builder.defineMacro("__GNUC_MINOR__", "2"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
125 |
+ Builder.defineMacro("__GNUC_PATCHLEVEL__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
126 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
127 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
128 |
Builder.defineMacro("__GNUC__", "4"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
129 |
- Builder.defineMacro("__GXX_ABI_VERSION", "1002"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
130 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
131 |
+ // GCC provides a number of C++ ABI Versions in: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
132 |
+ // ${top_srcdir}/gcc/c-family/c-cppbuiltin.c |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
133 |
+ // Currently valid GXX ABI Versions are documented here: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
134 |
+ // https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
135 |
+ // clang only supports a subset. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
136 |
+ switch (LangOpts.GXXABIVersion) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
137 |
+ default: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
138 |
+ Builder.defineMacro("__GXX_ABI_VERSION", "1002"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
139 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
140 |
+ case 4: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
141 |
+ Builder.defineMacro("__GXX_ABI_VERSION", "1004"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
142 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
143 |
+ case 5: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
144 |
+ Builder.defineMacro("__GXX_ABI_VERSION", "1005"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
145 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
146 |
+ case 6: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
147 |
+ Builder.defineMacro("__GXX_ABI_VERSION", "1006"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
148 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
149 |
+ case 7: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
150 |
+ Builder.defineMacro("__GXX_ABI_VERSION", "1007"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
151 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
152 |
+ case 8: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
153 |
+ Builder.defineMacro("__GXX_ABI_VERSION", "1008"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
154 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
155 |
+ case 9: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
156 |
+ Builder.defineMacro("__GXX_ABI_VERSION", "1009"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
157 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
158 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
159 |
} |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
160 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
161 |
// Define macros for the C11 / C++11 memory orderings |