Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Oct 2015 23:34:20 +0000 (UTC)
From:      Brooks Davis <brooks@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r399795 - in head/devel/llvm37: . files
Message-ID:  <201510192334.t9JNYKNv089687@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: brooks
Date: Mon Oct 19 23:34:20 2015
New Revision: 399795
URL: https://svnweb.freebsd.org/changeset/ports/399795

Log:
  Add an option to build extra clang tools.
  
  Add an insufficient set of patch toward building when the default python
  is python 3.  Scripts now run, but lldb uses APIs that have been
  removed in C code.
  
  Some small changes aimed at reducing future plist churn.
  
  PR:		203618

Added:
  head/devel/llvm37/files/compiler-rt-patch-svn-249051   (contents, props changed)
  head/devel/llvm37/files/extras-patch-cmake_include_hack.diff   (contents, props changed)
  head/devel/llvm37/files/lldb-patch-svn-247116   (contents, props changed)
  head/devel/llvm37/files/lldb-patch-svn-249467   (contents, props changed)
Modified:
  head/devel/llvm37/Makefile
  head/devel/llvm37/distinfo
  head/devel/llvm37/pkg-plist

Modified: head/devel/llvm37/Makefile
==============================================================================
--- head/devel/llvm37/Makefile	Mon Oct 19 22:45:19 2015	(r399794)
+++ head/devel/llvm37/Makefile	Mon Oct 19 23:34:20 2015	(r399795)
@@ -2,7 +2,7 @@
 
 PORTNAME=	llvm
 DISTVERSION=	3.7.0
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	devel lang
 MASTER_SITES=	http://llvm.org/${PRE_}releases/${LLVM_RELEASE}/${RCDIR}
 DISTNAME=	${PORTNAME}-${DISTVERSION}.src
@@ -30,9 +30,9 @@ SUB_LIST=	LLVM_PREFIX="${LLVM_PREFIX}" L
 CMAKE_INSTALL_PREFIX=	${LLVM_PREFIX}
 CMAKE_ARGS=	-DBUILD_SHARED_LIBS=ON
 
-OPTIONS_DEFINE=	CLANG COMPILER_RT DOCS GOLD LIT LLD LLDB
+OPTIONS_DEFINE=	CLANG COMPILER_RT DOCS EXTRAS GOLD LIT LLD LLDB
 OPTIONS_DEFINE_amd64=	OPENMP
-OPTIONS_DEFAULT=	CLANG GOLD LIT LLD LLDB
+OPTIONS_DEFAULT=	CLANG EXTRAS GOLD LIT LLD LLDB
 OPTIONS_DEFAULT_amd64=	COMPILER_RT OPENMP
 OPTIONS_DEFAULT_i386=	COMPILER_RT
 OPTIONS_SUB=	yes
@@ -49,17 +49,27 @@ CLANG_CMAKE_ON=		-DCLANG_DEFAULT_OPENMP_
 CLANG_PORTDOCS=		clang
 COMPILER_RT_DESC=	Build compiler-rt (sanitizers)
 COMPILER_RT_DISTFILES=	compiler-rt-${DISTVERSION}.src${EXTRACT_SUFX}
+COMPILER_RT_EXTRA_PATCHES= \
+	${PATCHDIR}/compiler-rt-patch-svn-249051
 DOCS_PORTDOCS=		llvm
 DOCS_CMAKE_ON=		-DLLVM_ENABLE_SPHINX=ON \
 			-DSPHINX_WARNINGS_AS_ERRORS=OFF \
 			-DLLVM_BUILD_DOCS=ON
 DOCS_PLIST_FILES=	${MAN1SRCS:S|^|man/man1/|:S|.1$|${LLVM_SUFFIX}.1.gz|}
+EXTRAS_DESC=		Extra clang tools
+EXTRAS_IMPLIES=		CLANG
+EXTRAS_DISTFILES= clang-tools-extra-${DISTVERSION}.src${EXTRACT_SUFX}
+EXTRAS_EXTRA_PATCHES= \
+	${PATCHDIR}/extras-patch-cmake_include_hack.diff
 LIT_DESC=		Install lit and FileCheck test tools
 LLD_DESC=		Install lld, the LLVM linker
 LLD_DISTFILES=		lld-${DISTVERSION}.src${EXTRACT_SUFX}
 LLDB_DESC=		Install lldb, the LLVM debugger (ignored on 9.x)
 LLDB_BUILD_DEPENDS=	swig:${PORTSDIR}/devel/swig13
 LLDB_DISTFILES=		lldb-${DISTVERSION}.src${EXTRACT_SUFX}
+LLDB_EXTRA_PATCHES= \
+	${PATCHDIR}/lldb-patch-svn-247116 \
+	${PATCHDIR}/lldb-patch-svn-249467
 OPENMP_DESC=		Install libomp, the LLVM OpenMP runtime library
 OPENMP_DISTFILES=	openmp-${DISTVERSION}.src${EXTRACT_SUFX}
 GOLD_DESC=		Build the LLVM Gold plugin for LTO
@@ -67,7 +77,7 @@ GOLD_CMAKE_ON=		-DLLVM_BINUTILS_INCDIR=$
 GOLD_BUILD_DEPENDS=	ld.gold:${PORTSDIR}/devel/binutils
 
 # Emulate USE_GITHUB's ${WRKSRC_tag} to reduce diffs to ../llvm-devel
-.for option in CLANG COMPILER_RT LLD LLDB OPENMP
+.for option in CLANG COMPILER_RT EXTRAS LLD LLDB OPENMP
 WRKSRC_${option:tl}=		${WRKDIR}/${${option}_DISTFILES:S/${EXTRACT_SUFX}//}
 .endfor
 
@@ -75,7 +85,6 @@ OPTIONS_SUB=	yes
 
 DOCS_BUILD_DEPENDS=		sphinx-build:${PORTSDIR}/textproc/py-sphinx
 
-LLVM_RELEASE=	${PORTVERSION:C/\.r[0-9]*//}
 PLIST_SUB+=	LLVM_RELEASE=${LLVM_RELEASE}
 
 COMMANDS=	bugpoint \
@@ -112,6 +121,23 @@ STRIP_LIBS=	BugpointPasses.so \
 		${LIBNAME}.0 \
 		libLTO.so
 
+EXTRAS_COMMANDS+= \
+		clang-apply-replacements \
+		clang-modernize \
+		clang-rename \
+		clang-tidy
+EXTRAS_LIBS=	libclangApplyReplacements \
+		libclangQuery \
+		libclangRename \
+		libclangTidy \
+		libclangTidyGoogleModule \
+		libclangTidyLLVMModule \
+		libclangTidyMiscModule \
+		libclangTidyReadabilityModule \
+		libclangTidyUtils \
+		libmodernizeCore
+EXTRAS_PATTERN=	${EXTRAS_COMMANDS:tW:C/  */|/g}${EXTRAS_LIBS:tW:C/  */|/g}
+
 .include <bsd.port.options.mk>
 
 # keep in sync with /usr/src/lib/clang/clang.build.mk
@@ -126,6 +152,10 @@ COMMANDS+=	clang \
 MAN1SRCS+=	clang.1
 .endif
 
+.if ${PORT_OPTIONS:MEXTRAS}
+COMMANDS+=	${EXTRAS_COMMANDS}
+.endif
+
 .if ${PORT_OPTIONS:MCOMPILER_RT}
 SAN_LIBDIR=${LLVM_PREFIX}/lib/clang/${LLVM_RELEASE}/lib/freebsd
 .if ${ARCH} == "amd64"
@@ -208,6 +238,11 @@ NOT_FOR_ARCH=	ia64
 
 .include <bsd.port.pre.mk>
 
+.if ${PYTHON_REL} < 3400
+LLDB_BUILD_DEPENDS+= \
+	${PYTHON_PKGNAMEPREFIX}enum34>0:${PORTSDIR}/devel/py-enum34
+.endif
+
 .if ${OPSYS} == "FreeBSD" && ${COMPILER_TYPE} != clang
 # Evil hack around gcc48 not providing a usable c++11 environment on 9.x
 PLIST_SUB:=	${PLIST_SUB:NLLDB=*} LLDB="@comment "
@@ -216,6 +251,9 @@ PLIST_SUB:=	${PLIST_SUB:NLLDB=*} LLDB="@
 post-extract-CLANG-on:
 	${MV} ${WRKSRC_clang} ${PATCH_WRKSRC}/tools/clang
 
+post-extract-EXTRAS-on:
+	${MV} ${WRKSRC_extras} ${PATCH_WRKSRC}/tools/clang-tools-extra
+
 post-extract-COMPILER_RT-on:
 	${MV} ${WRKSRC_compiler_rt} ${PATCH_WRKSRC}/tools/compiler-rt
 
@@ -302,16 +340,25 @@ build-plist:
 	${ECHO_CMD} %%LIT%%bin/${command}${LLVM_SUFFIX} >> ${PLIST}.tmp
 	${ECHO_CMD} %%LIT%%${LLVM_PREFIX:S|${PREFIX}/||}/bin/${command} >> ${PLIST}.tmp
 .endfor
+
 	${FIND} ${STAGEDIR}${LLVM_PREFIX} -type f -o -type l | \
 	    ${GREP} -v 'lit$$' | ${GREP} -v 'FileCheck$$' | \
 	    ${GREP} -v man/man1 | ${SED} -e 's|${STAGEDIR}${PREFIX}/||' \
-	    -e 's|${PORTVERSION}|%%PORTVERSION%%|' \
+	    -e 's|${LLVM_RELEASE}|%%LLVM_RELEASE%%|' \
 	    -e 's|release.cmake|%%CMAKE_BUILD_TYPE%%.cmake|' | \
 	    ${SORT} >> ${PLIST}.tmp
 	${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/lit${LLVM_SUFFIX} -type f | \
 	    ${SED} -e 's|${STAGEDIR}${PYTHON_SITELIBDIR}|%%LIT%%%%PYTHON_SITELIBDIR%%|' | \
 	    ${SORT} >> ${PLIST}.tmp
-	awk '{if ($$0 ~ /clang/ && $$0 !~ /(omp.h|libclang_rt|sanitizer|blacklist.txt)/) {printf "%%%%CLANG%%%%"} if ($$0 ~ /(sanitizer|blacklist.txt)/) {printf "%%%%COMPILER_RT%%%%"} if ($$0 ~ /lld/ && $$0 !~ /lldb/) {printf "%%%%LLD%%%%"} if ($$0 ~ /(argdumper|lldb)/) {printf "%%%%LLDB%%%%"} if ($$0 ~ /lib.*omp/) {printf "%%%%OPENMP%%%%"} if ($$0 ~ /LLVMgold/) {printf "%%%%GOLD%%%%"} if ($$0 !~ /libclang_rt/) {print}}' ${PLIST}.tmp >> ${PLIST}
+	awk '{ \
+	    if ($$0 ~ /clang/ && $$0 !~ /(omp.h|libclang_rt|sanitizer|blacklist.txt|${EXTRAS_PATTERN})/) {printf "%%%%CLANG%%%%"} \
+	    if ($$0 ~ /(sanitizer|blacklist.txt)/) {printf "%%%%COMPILER_RT%%%%"} \
+	    if ($$0 ~ /(${EXTRAS_PATTERN})/) {printf "%%%%EXTRAS%%%%"} \
+	    if ($$0 ~ /lld/ && $$0 !~ /lldb/) {printf "%%%%LLD%%%%"} \
+	    if ($$0 ~ /(argdumper|lldb)/) {printf "%%%%LLDB%%%%"} \
+	    if ($$0 ~ /lib.*omp/) {printf "%%%%OPENMP%%%%"} \
+	    if ($$0 ~ /LLVMgold/) {printf "%%%%GOLD%%%%"} \
+		if ($$0 !~ /libclang_rt/) {print}}' ${PLIST}.tmp >> ${PLIST}
 	${RM} -f ${PLIST}.tmp
 
 check-commands:
@@ -330,5 +377,27 @@ svn-patch-clang:
 	svn diff -c ${PATCH_REV} ${_LLVM_BASE} | \
 	    sed -E -e 's;^(---|\+\+\+) ;\1 tools/clang/;' >> ${_PATCH_FILE}
 .endif
+.if make(svn-patch-compiler-rt)
+.if !defined(PATCH_REV)
+.error svn-patch-compiler-rt requires that PATCH_REV be set
+.endif
+_PATCH_FILE=${FILESDIR}/compiler-rt-patch-svn-${PATCH_REV}
+_LLVM_BASE=http://llvm.org/svn/llvm-project/compiler-rt/trunk
+svn-patch-compiler-rt:
+	svn log -c ${PATCH_REV} ${_LLVM_BASE} >> ${_PATCH_FILE}
+	svn diff -c ${PATCH_REV} ${_LLVM_BASE} | \
+	    sed -E -e 's;^(---|\+\+\+) ;\1 tools/compiler-rt/;' >> ${_PATCH_FILE}
+.endif
+.if make(svn-patch-lldb)
+.if !defined(PATCH_REV)
+.error svn-patch-lldb requires that PATCH_REV be set
+.endif
+_PATCH_FILE=${FILESDIR}/lldb-patch-svn-${PATCH_REV}
+_LLVM_BASE=http://llvm.org/svn/llvm-project/lldb/trunk
+svn-patch-lldb:
+	svn log -c ${PATCH_REV} ${_LLVM_BASE} >> ${_PATCH_FILE}
+	svn diff -c ${PATCH_REV} ${_LLVM_BASE} | \
+	    sed -E -e 's;^(---|\+\+\+) ;\1 tools/lldb/;' >> ${_PATCH_FILE}
+.endif
 
 .include <bsd.port.post.mk>

Modified: head/devel/llvm37/distinfo
==============================================================================
--- head/devel/llvm37/distinfo	Mon Oct 19 22:45:19 2015	(r399794)
+++ head/devel/llvm37/distinfo	Mon Oct 19 23:34:20 2015	(r399795)
@@ -2,6 +2,8 @@ SHA256 (llvm-3.7.0.src.tar.xz) = ab45895
 SIZE (llvm-3.7.0.src.tar.xz) = 14636252
 SHA256 (cfe-3.7.0.src.tar.xz) = 4ed740c5a91df1c90a4118c5154851d6a475f39a91346bdf268c1c29c13aa1cc
 SIZE (cfe-3.7.0.src.tar.xz) = 9147204
+SHA256 (clang-tools-extra-3.7.0.src.tar.xz) = 8ae8a0a3a96b7a700412d67df0af172cb2fc1326beec575fcc0f71d2e72709cd
+SIZE (clang-tools-extra-3.7.0.src.tar.xz) = 276628
 SHA256 (compiler-rt-3.7.0.src.tar.xz) = 227fa998520bc94974a428dc8e7654d9bdf277e5bc70d4064ebc05691bd62b0b
 SIZE (compiler-rt-3.7.0.src.tar.xz) = 1192832
 SHA256 (lld-3.7.0.src.tar.xz) = ddb658b789c501efbe4f54ff8ced2c07cd9ff686c92445d8a1ab2cd5dbd837ed

Added: head/devel/llvm37/files/compiler-rt-patch-svn-249051
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/llvm37/files/compiler-rt-patch-svn-249051	Mon Oct 19 23:34:20 2015	(r399795)
@@ -0,0 +1,18 @@
+------------------------------------------------------------------------
+r249051 | eugenis | 2015-10-01 18:27:28 +0000 (Thu, 01 Oct 2015) | 1 line
+
+[asan] Tweak gen_dynamic_list.py to work with both Py2 and Py3.
+------------------------------------------------------------------------
+Index: lib/sanitizer_common/scripts/gen_dynamic_list.py
+===================================================================
+--- tools/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py	(revision 249050)
++++ tools/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py	(revision 249051)
+@@ -100,7 +100,7 @@
+     print('global:')
+   result.sort()
+   for f in result:
+-    print('  ' + f.encode('utf-8') + ';')
++    print(u'  %s;' % f)
+   if args.version_list:
+     print('local:')
+     print('  *;')

Added: head/devel/llvm37/files/extras-patch-cmake_include_hack.diff
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/llvm37/files/extras-patch-cmake_include_hack.diff	Mon Oct 19 23:34:20 2015	(r399795)
@@ -0,0 +1,184 @@
+--- tools/clang-tools-extra/modularize/CMakeLists.txt.orig	2015-02-19 16:47:27.000000000 +0000
++++ tools/clang-tools-extra/modularize/CMakeLists.txt	2015-10-19 21:42:02.663798333 +0000
+@@ -19,3 +19,8 @@
+   clangLex
+   clangTooling
+   )
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include
++  )
+--- tools/clang-tools-extra/clang-modernize/CMakeLists.txt.orig	2013-10-05 12:15:58.000000000 +0000
++++ tools/clang-tools-extra/clang-modernize/CMakeLists.txt	2015-10-19 21:42:02.663798333 +0000
+@@ -1,5 +1,7 @@
+ include_directories(
+   ${CMAKE_CURRENT_SOURCE_DIR}
++  ${CMAKE_CURRENT_BINARY_DIR}/../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include
+   ${ClangReplaceLocation}
+   )
+ 
+--- tools/clang-tools-extra/clang-rename/tool/CMakeLists.txt.orig	2015-10-19 21:52:45.481753909 +0000
++++ tools/clang-tools-extra/clang-rename/tool/CMakeLists.txt	2015-10-19 21:53:25.389751045 +0000
+@@ -9,3 +9,8 @@
+   )
+ 
+ install(TARGETS clang-rename RUNTIME DESTINATION bin)
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../../clang/include
++  )
+--- tools/clang-tools-extra/clang-rename/CMakeLists.txt.orig	2015-10-19 21:47:39.461774959 +0000
++++ tools/clang-tools-extra/clang-rename/CMakeLists.txt	2015-10-19 21:52:25.054755454 +0000
+@@ -14,3 +14,8 @@
+   )
+ 
+ add_subdirectory(tool)
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include
++  )
+--- tools/clang-tools-extra/clang-query/tool/CMakeLists.txt.orig	2015-06-20 19:28:07.000000000 +0000
++++ tools/clang-tools-extra/clang-query/tool/CMakeLists.txt	2015-10-19 21:42:02.663798333 +0000
+@@ -10,3 +10,8 @@
+   clangQuery
+   clangTooling
+   )
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../../clang/include
++  )
+--- tools/clang-tools-extra/clang-query/CMakeLists.txt.orig	2014-02-26 06:41:29.000000000 +0000
++++ tools/clang-tools-extra/clang-query/CMakeLists.txt	2015-10-19 21:42:02.663798333 +0000
+@@ -16,3 +16,8 @@
+   )
+ 
+ add_subdirectory(tool)
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include
++  )
+--- tools/clang-tools-extra/clang-apply-replacements/CMakeLists.txt.orig	2014-10-30 03:22:32.000000000 +0000
++++ tools/clang-tools-extra/clang-apply-replacements/CMakeLists.txt	2015-10-19 21:42:02.662798142 +0000
+@@ -15,5 +15,7 @@
+ include_directories(
+   ${CMAKE_CURRENT_SOURCE_DIR}
+   include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include
++  ${CMAKE_CURRENT_BINARY_DIR}/../../clang/include
+   )
+ add_subdirectory(tool)
+--- tools/clang-tools-extra/tool-template/CMakeLists.txt.orig	2013-12-10 01:41:10.000000000 +0000
++++ tools/clang-tools-extra/tool-template/CMakeLists.txt	2015-10-19 21:42:02.666798250 +0000
+@@ -13,3 +13,8 @@
+   clangFrontend
+   clangTooling
+   )
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include
++  )
+--- tools/clang-tools-extra/pp-trace/CMakeLists.txt.orig	2013-12-10 01:41:10.000000000 +0000
++++ tools/clang-tools-extra/pp-trace/CMakeLists.txt	2015-10-19 21:42:02.662798142 +0000
+@@ -14,3 +14,8 @@
+   clangLex
+   clangTooling
+   )
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include
++  )
+--- tools/clang-tools-extra/clang-tidy/llvm/CMakeLists.txt.orig	2014-10-26 01:41:14.000000000 +0000
++++ tools/clang-tools-extra/clang-tidy/llvm/CMakeLists.txt	2015-10-19 21:42:02.664798102 +0000
+@@ -16,3 +16,8 @@
+   clangTidyUtils
+   clangTooling
+   )
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../../clang/include
++  )
+--- tools/clang-tools-extra/clang-tidy/misc/CMakeLists.txt.orig	2015-06-17 14:19:35.000000000 +0000
++++ tools/clang-tools-extra/clang-tidy/misc/CMakeLists.txt	2015-10-19 21:42:02.664798102 +0000
+@@ -25,3 +25,8 @@
+   clangLex
+   clangTidy
+   )
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../../clang/include
++  )
+--- tools/clang-tools-extra/clang-tidy/tool/CMakeLists.txt.orig	2015-03-13 03:47:43.000000000 +0000
++++ tools/clang-tools-extra/clang-tidy/tool/CMakeLists.txt	2015-10-19 21:42:02.664798102 +0000
+@@ -20,3 +20,7 @@
+ install(TARGETS clang-tidy
+   RUNTIME DESTINATION bin)
+ 
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../../clang/include
++  )
+--- tools/clang-tools-extra/clang-tidy/utils/CMakeLists.txt.orig	2014-08-13 13:57:57.000000000 +0000
++++ tools/clang-tools-extra/clang-tidy/utils/CMakeLists.txt	2015-10-19 21:42:02.665798184 +0000
+@@ -10,3 +10,8 @@
+   clangLex
+   clangTidy
+   )
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../../clang/include
++  )
+--- tools/clang-tools-extra/clang-tidy/CMakeLists.txt.orig	2014-10-30 00:44:01.000000000 +0000
++++ tools/clang-tools-extra/clang-tidy/CMakeLists.txt	2015-10-19 21:42:02.665798184 +0000
+@@ -30,3 +30,9 @@
+ add_subdirectory(misc)
+ add_subdirectory(readability)
+ add_subdirectory(utils)
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../clang
++  ${CMAKE_CURRENT_BINARY_DIR}/../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include
++  )
+--- tools/clang-tools-extra/clang-tidy/google/CMakeLists.txt.orig	2015-03-16 22:31:16.000000000 +0000
++++ tools/clang-tools-extra/clang-tidy/google/CMakeLists.txt	2015-10-19 21:42:02.664798102 +0000
+@@ -22,3 +22,8 @@
+   clangTidy
+   clangTidyReadabilityModule
+   )
++
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../../clang/include
++  )
+--- tools/clang-tools-extra/clang-tidy/readability/CMakeLists.txt.orig	2015-04-10 19:26:43.000000000 +0000
++++ tools/clang-tools-extra/clang-tidy/readability/CMakeLists.txt	2015-10-19 21:42:02.665798184 +0000
+@@ -21,3 +21,7 @@
+   clangTidy
+   clangTooling
+   )
++include_directories(BEFORE
++  ${CMAKE_CURRENT_BINARY_DIR}/../../../clang/include
++  ${CMAKE_CURRENT_SOURCE_DIR}/../../../clang/include
++  )
+--- tools/clang-tools-extra/clang-tidy/ClangTidy.cpp.orig	2015-03-11 17:25:22.000000000 +0000
++++ tools/clang-tools-extra/clang-tidy/ClangTidy.cpp	2015-10-19 21:42:02.665798184 +0000
+@@ -59,7 +59,7 @@
+ #define GET_CHECKERS
+ #define CHECKER(FULLNAME, CLASS, DESCFILE, HELPTEXT, GROUPINDEX, HIDDEN)       \
+   FULLNAME,
+-#include "../../../lib/StaticAnalyzer/Checkers/Checkers.inc"
++#include "lib/StaticAnalyzer/Checkers/Checkers.inc"
+ #undef CHECKER
+ #undef GET_CHECKERS
+ };

Added: head/devel/llvm37/files/lldb-patch-svn-247116
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/llvm37/files/lldb-patch-svn-247116	Mon Oct 19 23:34:20 2015	(r399795)
@@ -0,0 +1,36 @@
+------------------------------------------------------------------------
+r247116 | sas | 2015-09-09 01:22:05 +0000 (Wed, 09 Sep 2015) | 11 lines
+
+Teach utilsOsType about NetBSD
+
+Summary: NetBSD is a free, fast, secure, and highly portable Unix-like Open Source operating system.
+
+Reviewers: joerg, sas
+
+Subscribers: sas, emaste, lldb-commits
+
+Differential Revision: http://reviews.llvm.org/D12615
+
+Change by Kamil Rytarowski <n54@gmx.com>
+------------------------------------------------------------------------
+Index: scripts/utilsOsType.py
+===================================================================
+--- tools/lldb/scripts/utilsOsType.py	(revision 247115)
++++ tools/lldb/scripts/utilsOsType.py	(revision 247116)
+@@ -31,6 +31,7 @@
+                 "Darwin",
+                 "FreeBSD",
+                 "Linux", 
++                "NetBSD",
+                 "Windows" ]
+     class __metaclass__( type ):
+ #++---------------------------------------------------------------------------
+@@ -71,6 +72,8 @@
+         eOSType = EnumOsType.FreeBSD
+     elif (strOS.startswith("linux")):
+         eOSType = EnumOsType.Linux
++    elif (strOS.startswith("netbsd")):
++        eOSType = EnumOsType.NetBSD
+     elif strOS == "win32":
+         eOSType = EnumOsType.Windows
+ 

Added: head/devel/llvm37/files/lldb-patch-svn-249467
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/llvm37/files/lldb-patch-svn-249467	Mon Oct 19 23:34:20 2015	(r399795)
@@ -0,0 +1,538 @@
+------------------------------------------------------------------------
+r249467 | zturner | 2015-10-06 21:11:28 +0000 (Tue, 06 Oct 2015) | 1 line
+
+Update swig generation scripts to support Python 3.
+------------------------------------------------------------------------
+Index: scripts/finishSwigWrapperClasses.py
+===================================================================
+--- tools/lldb/scripts/finishSwigWrapperClasses.py	(revision 249466)
++++ tools/lldb/scripts/finishSwigWrapperClasses.py	(revision 249467)
+@@ -97,7 +97,7 @@
+ 
+     if vMsg.__len__() != 0:
+         strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult);
+-        print strMsg;
++        print(strMsg);
+ 
+     sys.exit( vnResult );
+ 
+@@ -110,7 +110,7 @@
+ # Throws:   None.
+ #--
+ def program_exit_on_failure( vnResult, vMsg ):
+-    print "%s%s (%d)" % (strExitMsgError, vMsg, vnResult);
++    print("%s%s (%d)" % (strExitMsgError, vMsg, vnResult));
+     sys.exit( vnResult );
+ 
+ #++---------------------------------------------------------------------------
+@@ -141,7 +141,7 @@
+         if val.__len__() != 0:
+             strEqs = " =";
+             strQ = "\"";
+-        print "%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ);
++        print("%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ));
+ 
+ #++---------------------------------------------------------------------------
+ # Details:  Validate the arguments passed to the program. This function exits
+@@ -210,8 +210,8 @@
+         return (-9, strStatusMsg);
+ 
+     if gbDbgFlag:
+-        print strScriptLangFound % vStrScriptLang;
+-        print strExecuteMsg % vStrScriptLang;
++        print(strScriptLangFound % vStrScriptLang);
++        print(strExecuteMsg % vStrScriptLang);
+ 
+     # Change where Python looks for our modules
+     strDir = os.path.normcase( strScriptFileDir );
+@@ -267,16 +267,18 @@
+         listDirs.remove('.svn')
+ 
+     if gbDbgFlag:
+-        print strScriptLangsFound,
++        sys.stdout.write(strScriptLangsFound)
+         for dir in listDirs:
+-            print dir,
+-        print "\n";
++            sys.stdout.write(dir)
++        print("\n")
+ 
+     # Iterate script directory find any script language directories
+     for scriptLang in listDirs:
+-        dbg.dump_text( "Executing language script for \'%s\'" % scriptLang );
+-        nResult, strStatusMsg = run_post_process( scriptLang, strFinishFileName,
+-                                                  vDictArgs );
++        # __pycache__ is a magic directory in Python 3 that holds .pyc files
++        if scriptLang != "__pycache__":
++            dbg.dump_text( "Executing language script for \'%s\'" % scriptLang );
++            nResult, strStatusMsg = run_post_process( scriptLang, strFinishFileName,
++                                                      vDictArgs );
+         if nResult < 0:
+             break;
+ 
+Index: scripts/Python/buildSwigPython.py
+===================================================================
+--- tools/lldb/scripts/Python/buildSwigPython.py	(revision 249466)
++++ tools/lldb/scripts/Python/buildSwigPython.py	(revision 249467)
+@@ -123,7 +123,7 @@
+ 						"/include/lldb/API/SBValue.h",
+ 						"/include/lldb/API/SBValueList.h",
+ 						"/include/lldb/API/SBWatchpoint.h" ];
+-	bDebug = vDictArgs.has_key( "-d" );
++	bDebug = "-d" in vDictArgs;
+ 	strRt = vDictArgs[ "--srcRoot" ];
+ 	strRt = os.path.normcase( strRt );
+ 	
+@@ -133,8 +133,8 @@
+ 		strHeaderFiles += " %s%s" % (strRt, strHdr);
+ 	
+ 	if bDebug:
+-		print strMsgHdrFiles;
+- 		print strHeaderFiles;
++		print(strMsgHdrFiles);
++		print(strHeaderFiles);
+ 		
+ 	vDictArgs[ "--headerFiles" ] = strHeaderFiles;
+ 	
+@@ -201,7 +201,7 @@
+ 						"/scripts/interface/SBValue.i",
+ 						"/scripts/interface/SBValueList.i",
+ 						"/scripts/interface/SBWatchpoint.i" ];	
+-	bDebug = vDictArgs.has_key( "-d" );
++	bDebug = "-d" in vDictArgs;
+ 	strRt = vDictArgs[ "--srcRoot" ];
+ 	strRt = os.path.normcase( strRt );
+ 	
+@@ -211,8 +211,8 @@
+ 		strInterfaceFiles += " %s%s" % (strRt, strIFace);
+ 	
+ 	if bDebug:
+-		print strMsgIFaceFiles;
+-		print strInterfaceFiles;
++		print(strMsgIFaceFiles);
++		print(strInterfaceFiles);
+ 	
+ 	vDictArgs[ "--ifaceFiles" ] = strInterfaceFiles;
+ 		
+@@ -251,12 +251,12 @@
+ #--
+ def check_file_exists( vDictArgs, vstrFileNamePath ):
+ 	bExists = False;
+-	bDebug = vDictArgs.has_key( "-d" );
++	bDebug = "-d" in vDictArgs;
+ 	
+ 	if os.path.exists( vstrFileNamePath ):
+ 		bExists = True;
+ 	elif bDebug:
+-		print strMsgFileNotExist % vstrFileNamePath;
++		print(strMsgFileNotExist % vstrFileNamePath);
+ 	
+ 	return bExists;
+ 
+@@ -271,7 +271,7 @@
+ #--
+ def check_newer_file( vDictArgs, vstrSwigOpFileNamePath, vstrFileNamePath ):
+ 	bNeedUpdate = False;
+-	bDebug = vDictArgs.has_key( "-d" );
++	bDebug = "-d" in vDictArgs;
+ 	
+ 	strMsg = "";
+ 	nResult = which_file_is_newer( vstrFileNamePath, vstrSwigOpFileNamePath );
+@@ -284,7 +284,7 @@
+ 		bNeedUpdate = True;
+ 	
+ 	if bNeedUpdate and bDebug:
+-		print strMsg;
++		print(strMsg);
+ 	
+ 	return bNeedUpdate;
+ 
+@@ -328,7 +328,7 @@
+ 	# on the system other stuff may need to be put here as well.
+ 	from distutils.sysconfig import get_python_lib;
+ 	strPythonInstallDir = "";
+-	bHaveArgPrefix = vDictArgs.has_key( "--prefix" );
++	bHaveArgPrefix = "--prefix" in vDictArgs;
+ 	if bHaveArgPrefix: 
+ 		strPythonInstallDir = vDictArgs[ "--prefix" ];
+ 	if strPythonInstallDir.__len__() != 0:
+@@ -354,9 +354,9 @@
+ 	bOk = True;
+ 	strWkDir = "";
+ 	strErrMsg = "";
+-	bDbg = vDictArgs.has_key( "-d" );
++	bDbg = "-d" in vDictArgs;
+ 	
+-	bMakeFileCalled = vDictArgs.has_key( "-m" );
++	bMakeFileCalled = "-m" in vDictArgs;
+ 	if bMakeFileCalled:
+ 		dbg.dump_text( "Built by LLVM" );
+ 		return get_framework_python_dir_windows( vDictArgs );
+@@ -368,7 +368,7 @@
+ 		strWkDir += "/LLDB.framework";
+ 		if os.path.exists( strWkDir ):
+ 			if bDbg:
+-				print strMsgFoundLldbFrameWkDir % strWkDir;
++				print(strMsgFoundLldbFrameWkDir % strWkDir);
+ 			strWkDir += "/Resources/Python/lldb";
+ 			strWkDir = os.path.normcase( strWkDir );
+ 		else:
+@@ -420,7 +420,7 @@
+ 	strErrMsg = "";
+ 	
+ 	strConfigBldDir = "";
+-	bHaveConfigBldDir = vDictArgs.has_key( "--cfgBldDir" );
++	bHaveConfigBldDir = "--cfgBldDir" in vDictArgs;
+ 	if bHaveConfigBldDir:
+ 		strConfigBldDir = vDictArgs[ "--cfgBldDir" ];
+ 	if (bHaveConfigBldDir == False) or (strConfigBldDir.__len__() == 0):
+@@ -463,8 +463,8 @@
+ 	dbg = utilsDebug.CDebugFnVerbose( "Python script do_swig_rebuild()" );
+ 	bOk = True;
+ 	strMsg = "";
+-	bDbg = vDictArgs.has_key( "-d" );
+-	bGenDependencies = vDictArgs.has_key( "-M" );
++	bDbg = "-d" in vDictArgs;
++	bGenDependencies = "-M" in vDictArgs;
+ 	strSwigExePath = vDictArgs[ "--swigExePath" ];
+ 	strSwigExeName = vDictArgs[ "--swigExeName" ];
+ 	strSrcRoot = vDictArgs[ "--srcRoot" ];
+@@ -502,7 +502,7 @@
+ 	strCmd += "-o \"%s\" " % strOp;
+ 	strCmd += "\"%s\" " % strIp;
+ 	if bDbg:
+-		print strMsgSwigExecute % strCmd;
++		print(strMsgSwigExecute % strCmd);
+ 
+ 	# Execute SWIG
+ 	process = subprocess.Popen( strCmd, stdout=subprocess.PIPE, 
+@@ -547,7 +547,7 @@
+ 	dbg = utilsDebug.CDebugFnVerbose( "Python script run_python_script()" );
+ 	bOk = True;
+ 	strMsg = "";
+-	bDbg = vDictArgs.has_key( "-d" );
++	bDbg = "-d" in vDictArgs;
+ 	
+ 	strPy = "%s %s" % (sys.executable, vstrArgs);
+ 	process = subprocess.Popen( strPy, shell=True );
+@@ -583,7 +583,7 @@
+ 	dbg = utilsDebug.CDebugFnVerbose( "Python script do_modify_python_lldb()" );
+ 	bOk = True;
+ 	strMsg = "";
+-	bDbg = vDictArgs.has_key( "-d" );
++	bDbg = "-d" in vDictArgs;
+ 	strCwd = vDictArgs[ "--srcRoot" ]; # /llvm/tools/lldb
+ 	strCwd += "/scripts/Python";
+ 	strPyScript = "modify-python-lldb.py";
+@@ -654,15 +654,15 @@
+ 	strMsg = "";
+ 	strErrMsgProgFail = "";
+ 	
+-	if not( vDictArgs.has_key( "--swigExePath" ) and vDictArgs.has_key( "--swigExeName" ) ):
++	if not("--swigExePath" in vDictArgs) and ("--swigExeName" in vDictArgs):
+ 		strErrMsgProgFail += strErrMsgSwigParamsMissing;
+ 		return (-100, strErrMsgProgFail );	
+ 	
+-	bDebug = vDictArgs.has_key( "-d" );
++	bDebug = "-d" in vDictArgs;
+ 	
+ 	strSwigDepFile = "";
+ 	strSwigDepOptions = "";
+-	bGenDependencies = vDictArgs.has_key( "-M" );
++	bGenDependencies = "-M" in vDictArgs;
+ 	if bGenDependencies:
+ 		strSwigDepFile = vDictArgs[ "--targetDir" ] + "/LLDBWrapPython.cpp.d";
+ 		strSwigDepOptions = "-MMD -MF \"%s.tmp\"" % strSwigDepFile;
+@@ -669,7 +669,7 @@
+ 		strSwigDepFile = os.path.normcase( strSwigDepFile );
+ 		strSwigDepOptions = os.path.normcase( strSwigDepOptions );
+ 		
+-	bMakeFileCalled = vDictArgs.has_key( "-m" );			
++	bMakeFileCalled = "-m" in vDictArgs;
+ 	strSwigOutputFile = ""
+ 	if bMakeFileCalled:
+ 		strSwigOutputFile = vDictArgs[ "--targetDir" ] + "/LLDBWrapPython.cpp";
+@@ -760,7 +760,7 @@
+ 	if bOk and (bNeedUpdate == False):
+ 		strInitPiPath = strFrameworkPythonDir + "/__init__.py";
+ 		strInitPiPath = os.path.normcase( strInitPiPath );
+-		print strInitPiPath
++		print(strInitPiPath)
+ 		bNeedUpdate = not check_file_exists( vDictArgs, strInitPiPath );
+ 		dbg.dump_object( "check_file_exists( vDictArgs, strInitPiPath ), bNeedUpdate =", bNeedUpdate);
+ 		
+@@ -769,12 +769,12 @@
+ 			strMsg = strMsgNotNeedUpdate;
+ 			return (0, strMsg );
+ 		else:
+-			print strMsgSwigNeedRebuild;
++			print(strMsgSwigNeedRebuild);
+ 			bOk, strMsg, nExitResult = do_swig_rebuild( vDictArgs, strSwigDepFile, 
+ 														strCfgBldDir, 
+ 														strSwigOutputFile,
+ 														strSwigInputFile );
+-			bGenDependencies = vDictArgs.has_key( "-M" );
++			bGenDependencies = "-M" in vDictArgs;
+ 			if bGenDependencies == True:
+ 				return (nExitResult, strMsg);
+ 				   	
+@@ -794,5 +794,5 @@
+ # This script can be called by another Python script by calling the main() 
+ # function directly
+ if __name__ == "__main__":
+-	print "Script cannot be called directly, called by buildSwigWrapperClasses.py";
++	print("Script cannot be called directly, called by buildSwigWrapperClasses.py");
+ 	
+Index: scripts/Python/modify-python-lldb.py
+===================================================================
+--- tools/lldb/scripts/Python/modify-python-lldb.py	(revision 249466)
++++ tools/lldb/scripts/Python/modify-python-lldb.py	(revision 249467)
+@@ -21,7 +21,11 @@
+ # subsystem.
+ #
+ 
+-import sys, re, StringIO
++import sys, re
++if sys.version_info.major >= 3:
++    import io as StringIO
++else:
++    import StringIO
+ 
+ if len (sys.argv) != 2:
+     output_name = "./lldb.py"
+@@ -269,7 +273,7 @@
+     def add_line(self, a_line):
+         """Add a line to the content, if there is a previous line, commit it."""
+         if self.prev_line != None:
+-            print >> self, self.prev_line
++            self.write(self.prev_line + "\n")
+         self.prev_line = a_line
+     def del_line(self):
+         """Forget about the previous line, do not commit it."""
+@@ -281,7 +285,7 @@
+     def finish(self):
+         """Call this when you're finished with populating content."""
+         if self.prev_line != None:
+-            print >> self, self.prev_line
++            self.write(self.prev_line + "\n")
+         self.prev_line = None
+ 
+ # The new content will have the iteration protocol defined for our lldb objects.
+Index: scripts/utilsOsType.py
+===================================================================
+--- tools/lldb/scripts/utilsOsType.py	(revision 249466)
++++ tools/lldb/scripts/utilsOsType.py	(revision 249467)
+@@ -26,14 +26,24 @@
+ # Authors:  Illya Rudkin 28/11/2013.
+ # Changes:  None.
+ #--
+-class EnumOsType( object ):
+-    values = [  "Unknown",
+-                "Darwin",
+-                "FreeBSD",
+-                "Linux", 
+-                "NetBSD",
+-                "Windows" ]
+-    class __metaclass__( type ):
++if sys.version_info.major >= 3:
++    from enum import Enum
++    class EnumOsType(Enum):
++        Unknown = 0
++        Darwin = 1
++        FreeBSD = 2
++        Linux = 3
++        NetBSD = 4
++        Windows = 5
++else:
++    class EnumOsType( object ):
++        values = [  "Unknown",
++                    "Darwin",
++                    "FreeBSD",
++                    "Linux", 
++                    "NetBSD",
++                    "Windows" ]
++        class __metaclass__( type ):
+ #++---------------------------------------------------------------------------
+ # Details:  Fn acts as an enumeration.
+ # Args:     vName - (R) Enumeration to match.
+@@ -40,8 +50,8 @@
+ # Returns:  Int - Matching enumeration/index.
+ # Throws:   None.
+ #--
+-        def __getattr__( self, vName ):
+-            return self.values.index( vName );
++            def __getattr__( self, vName ):
++                return self.values.index( vName );
+ 
+ #++---------------------------------------------------------------------------
+ # Details:  Reverse fast lookup of the values list.
+@@ -49,8 +59,8 @@
+ # Returns:  Str - text description matching enumeration.
+ # Throws:   None.
+ #--
+-        def name_of( self, vI ):
+-            return EnumOsType.values[ vI ];
++            def name_of( self, vI ):
++                return EnumOsType.values[ vI ];
+ 
+ #-----------------------------------------------------------------------------
+ #-----------------------------------------------------------------------------
+Index: scripts/utilsDebug.py
+===================================================================
+--- tools/lldb/scripts/utilsDebug.py	(revision 249466)
++++ tools/lldb/scripts/utilsDebug.py	(revision 249467)
+@@ -55,9 +55,9 @@
+ 	def dump_object( self, vstrText, vObject ):
+ 		if CDebugFnVerbose.bVerboseOn == False:
+ 			return;
+-		print "%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(), 
+-								vstrText),;
+-		print vObject;
++		sys.stdout.write("%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(), 
++								vstrText));
++		print(vObject);
+ 	
+ 	#++------------------------------------------------------------------------
+ 	# Details:	Print out some progress text given by the client.
+@@ -69,8 +69,8 @@
+ 	def dump_text( self, vstrText ):
+ 		if CDebugFnVerbose.bVerboseOn == False:
+ 			return;
+-		print "%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
+-								vstrText);
++		print("%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
++								vstrText));
+ 				
+ 	# Private methods:
+ 	def __init__( self, vstrFnName ):
+@@ -100,8 +100,8 @@
+ 	#--
+ 	def __indent_back( self ):
+ 		if CDebugFnVerbose.bVerboseOn:
+-			print "%d%s< fn: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
+-									self.__strFnName);
++			print("%d%s< fn: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
++									self.__strFnName));
+ 		CDebugFnVerbose.__nLevel -= 1;
+ 
+ 	#++------------------------------------------------------------------------
+@@ -116,8 +116,8 @@
+ 		CDebugFnVerbose.__nLevel += 1;
+ 		self.__strFnName = vstrFnName;
+ 		if CDebugFnVerbose.bVerboseOn:
+-			print "%d%s> fn: %s" % ( CDebugFnVerbose.__nLevel, self.__get_dots(), 
+-									 self.__strFnName);
++			print("%d%s> fn: %s" % ( CDebugFnVerbose.__nLevel, self.__get_dots(), 
++									 self.__strFnName));
+ 
+ 	# Private statics attributes:
+ 	__nLevel = 0;	# Indentation level counter
+Index: scripts/utilsArgsParse.py
+===================================================================
+--- tools/lldb/scripts/utilsArgsParse.py	(revision 249466)
++++ tools/lldb/scripts/utilsArgsParse.py	(revision 249467)
+@@ -87,7 +87,7 @@
+ 	
+ 	# Count the number of mandatory args required (if any one found)
+ 	countMandatory = 0;
+-	for opt, man in vDictArgReq.iteritems():
++	for opt, man in vDictArgReq.items():
+ 		if man == "m":
+ 		  countMandatory = countMandatory + 1;
+ 	
+Index: scripts/buildSwigWrapperClasses.py
+===================================================================
+--- tools/lldb/scripts/buildSwigWrapperClasses.py	(revision 249466)
++++ tools/lldb/scripts/buildSwigWrapperClasses.py	(revision 249467)
+@@ -126,7 +126,7 @@
+ 
+     if vMsg.__len__() != 0:
+         strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult);
+-        print strMsg;
++        print(strMsg);
+ 
+     sys.exit( vnResult );
+ 
+@@ -139,7 +139,7 @@
+ # Throws:   None.
+ #--
+ def program_exit_on_failure( vnResult, vMsg ):
+-    print "%s%s (%d)" % (strExitMsgError, vMsg, vnResult);
++    print("%s%s (%d)" % (strExitMsgError, vMsg, vnResult));
+     sys.exit( vnResult );
+ 
+ #++---------------------------------------------------------------------------
+@@ -170,7 +170,7 @@
+         if val.__len__() != 0:
+             strEqs = " =";
+             strQ = "\"";
+-        print "%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ);
++        print("%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ));
+ 
+ #++---------------------------------------------------------------------------
+ # Details:  Locate the lldb.swig file. No checking for path correctness is
+@@ -193,7 +193,7 @@
+     bOk = os.path.isfile( strFullPath );
+     if bOk:
+         if gbDbgFlag:
+-            print strSwigFileFound;
++            print(strSwigFileFound);
+     else:
+         strStatusMsg = strSwigFileFoundNotFound % strFullPath;
+ 
+@@ -227,8 +227,8 @@
+         return (-9, strStatusMsg);
+ 
+     if gbDbgFlag:
+-        print strSwigScriptLangFound % vStrScriptLang;
+-        print strSwigExecuteMsg % vStrScriptLang;
++        print(strSwigScriptLangFound % vStrScriptLang);
++        print(strSwigExecuteMsg % vStrScriptLang);
+ 
+     # Change where Python looks for our modules
+     strDir = os.path.normcase( strScriptFileDir );
+@@ -287,16 +287,18 @@
+         listDirs.remove('.svn')
+ 
+     if gbDbgFlag:
+-        print strSwigScriptLangsFound,
++        sys.stdout.write(strSwigScriptLangsFound)
+         for dir in listDirs:
+-            print dir,
+-        print "\n";
++            sys.stdout.write(dir)
++        print("\n");
+ 
+     # Iterate script directory find any script language directories
+     for scriptLang in listDirs:
+-        dbg.dump_text( "Executing language script for \'%s\'" % scriptLang );
+-        nResult, strStatusMsg = run_swig( scriptLang, strSwigBuildFileName,
+-                                          vDictArgs );
++        # __pycache__ is a magic directory in Python 3 that holds .pyc files
++        if scriptLang != "__pycache__":
++            dbg.dump_text( "Executing language script for \'%s\'" % scriptLang );
++            nResult, strStatusMsg = run_swig( scriptLang, strSwigBuildFileName,
++                                              vDictArgs );
+         if nResult < 0:
+             break;
+ 
+@@ -503,7 +505,7 @@
+         program_exit( -4, strMsgErrorOsTypeUnknown );
+ 
+     global gbDbgFlag;
+-    gbDbgFlag = dictArgs.has_key( "-d" );
++    gbDbgFlag = "-d" in dictArgs;
+     if gbDbgFlag:
+         print_out_input_parameters( dictArgs );
+ 
+@@ -513,8 +515,8 @@
+     # called by this program
+     global gbMakeFileFlag;
+     global gbSwigGenDepFileFlag;
+-    gbMakeFileFlag = dictArgs.has_key( "-m" );
+-    gbSwigGenDepFileFlag = dictArgs.has_key( "-M" );
++    gbMakeFileFlag = "-m" in dictArgs;
++    gbSwigGenDepFileFlag = "-M" in dictArgs;
+ 
+     bOk, strMsg = check_lldb_swig_file_exists( dictArgs[ "--srcRoot" ], eOSType );
+     if bOk == False:

Modified: head/devel/llvm37/pkg-plist
==============================================================================
--- head/devel/llvm37/pkg-plist	Mon Oct 19 22:45:19 2015	(r399794)
+++ head/devel/llvm37/pkg-plist	Mon Oct 19 23:34:20 2015	(r399795)
@@ -30,6 +30,10 @@ bin/opt37
 %%CLANG%%bin/clang-check37
 %%CLANG%%bin/clang-cpp37
 %%CLANG%%bin/clang-format37
+%%EXTRAS%%bin/clang-apply-replacements37
+%%EXTRAS%%bin/clang-modernize37
+%%EXTRAS%%bin/clang-rename37
+%%CLANG%%bin/clang-tidy37
 %%LLD%%bin/lld37
 %%LLDB%%bin/argdumper37
 %%LLDB%%bin/lldb37
@@ -46,19 +50,23 @@ llvm37/bin/bugpoint
 %%CLANG%%llvm37/bin/clang
 %%CLANG%%llvm37/bin/clang++
 %%CLANG%%llvm37/bin/clang-3.7
+%%EXTRAS%%llvm37/bin/clang-apply-replacements
 %%CLANG%%llvm37/bin/clang-check
 %%CLANG%%llvm37/bin/clang-cl

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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