components/llvm/patches/013-solaris-clang-libclangFrontend.patch
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--
Added tag s12-107 for changeset 140c4300a556
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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