Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 May 2016 17:38:45 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r300314 - head/contrib/llvm/tools/clang/lib/Basic
Message-ID:  <201605201738.u4KHcjSQ086817@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Fri May 20 17:38:45 2016
New Revision: 300314
URL: https://svnweb.freebsd.org/changeset/base/300314

Log:
  Pull in r270240 from upstream clang trunk (by me):
  
    Make __FreeBSD_cc_version predefined macro configurable at build time
  
    The `FreeBSDTargetInfo` class has always set the `__FreeBSD_cc_version`
    predefined macro to a rather static value, calculated from the major OS
    version.
  
    In the FreeBSD base system, we will start incrementing the value of this
    macro whenever we make any signifant change to clang, so we need a way
    to configure the macro's value at build time.
  
    Use `FREEBSD_CC_VERSION` for this, which we can define in the FreeBSD
    build system using either the `-D` command line option, or an include
    file.  Stock builds will keep the earlier value.
  
    Differential Revision: http://reviews.llvm.org/D20037
  
  Follow-up commits will start using the __FreeBSD_cc_version to determine
  whether a bootstrap compiler has to be built during buildworld.

Modified:
  head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp

Modified: head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
==============================================================================
--- head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp	Fri May 20 17:35:39 2016	(r300313)
+++ head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp	Fri May 20 17:38:45 2016	(r300314)
@@ -296,6 +296,10 @@ public:
   }
 };
 
+#ifndef FREEBSD_CC_VERSION
+#define FREEBSD_CC_VERSION 0U
+#endif
+
 // FreeBSD Target
 template<typename Target>
 class FreeBSDTargetInfo : public OSTargetInfo<Target> {
@@ -306,10 +310,13 @@ protected:
 
     unsigned Release = Triple.getOSMajorVersion();
     if (Release == 0U)
-      Release = 8;
+      Release = 8U;
+    unsigned CCVersion = FREEBSD_CC_VERSION;
+    if (CCVersion == 0U)
+      CCVersion = Release * 100000U + 1U;
 
     Builder.defineMacro("__FreeBSD__", Twine(Release));
-    Builder.defineMacro("__FreeBSD_cc_version", Twine(Release * 100000U + 1U));
+    Builder.defineMacro("__FreeBSD_cc_version", Twine(CCVersion));
     Builder.defineMacro("__KPRINTF_ATTRIBUTE__");
     DefineStd(Builder, "unix", Opts);
     Builder.defineMacro("__ELF__");



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605201738.u4KHcjSQ086817>