Index: head/lang/clang35/Makefile =================================================================== --- head/lang/clang35/Makefile (revision 374917) +++ head/lang/clang35/Makefile (revision 374918) @@ -1,210 +1,210 @@ # $FreeBSD$ PORTNAME= clang DISTVERSION= 3.5.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= lang devel MASTER_SITES= http://llvm.org/releases/3.5.0/ PKGNAMESUFFIX= ${LLVM_SUFFIX} DISTNAME= ${CLANG_NAME} DISTFILES= ${CLANG_SOURCE} \ ${LLVM_SOURCE} MAINTAINER= brooks@FreeBSD.org COMMENT= C, Objective-C, and C++ compiler CLANG_NAME= cfe-${DISTVERSION}.src CLANG_SOURCE= ${CLANG_NAME}${EXTRACT_SUFX} CLANG_EXTRACT= cfe-${DISTVERSION}.src LLVM_NAME= llvm-${DISTVERSION}.src LLVM_SOURCE= ${LLVM_NAME}${EXTRACT_SUFX} LLVM_EXTRACT= llvm-${DISTVERSION}.src LIBNAME= libLLVM-3.5.so WRKSRC= ${WRKDIR}/${LLVM_EXTRACT} BUILD_WRKSRC= ${WRKSRC}/tools/clang INSTALL_WRKSRC= ${WRKSRC}/tools/clang BUILD_DEPENDS+= llc${LLVM_SUFFIX}:${PORTSDIR}/devel/llvm${LLVM_SUFFIX} RUN_DEPENDS+= llc${LLVM_SUFFIX}:${PORTSDIR}/devel/llvm${LLVM_SUFFIX} LLVM_SUFFIX= ${PORTVERSION:C/([0-9]\.[0-9]).*/\1/:S/.//g:C/r.//} LLVM_PREFIX= ${PREFIX}/llvm${LLVM_SUFFIX} DATADIR= ${PREFIX}/share/${PORTNAME}${LLVM_SUFFIX} DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${LLVM_SUFFIX} PYTHONLIBDIR= ${LLVM_PREFIX}/lib/python GNU_CONFIGURE= yes GNU_CONFIGURE_PREFIX= ${LLVM_PREFIX} USES= compiler:c++11-lib gmake perl5 python:build tar:xz USE_LDCONFIG= yes MAKE_ARGS= CLANG_TBLGEN=${WRKSRC}/${RELTYPE}/bin/clang-tblgen \ LLVMIncDir=${LLVM_PREFIX}/include \ LLVMToolDir=${LLVM_PREFIX}/bin \ LLVMLibDir=${LLVM_PREFIX}/lib SUB_FILES= llvm-wrapper.sh SUB_LIST= LLVM_PREFIX="${LLVM_PREFIX}" LLVM_SUFFIX="${LLVM_SUFFIX}" OPTIONS_DEFINE= ASSERTS DOCS ASSERTS_DESC= Enable assertions (thread unsafe) CONFIGURE_ARGS+= --enable-optimized --enable-shared # Build some docs manually later CONFIGURE_ARGS+= --disable-docs PLIST_SUB+= LLVM_SUFFIX=${LLVM_SUFFIX} \ PORTVERSION=${PORTVERSION} COMMANDS= c++-analyzer \ c-index-test \ ccc-analyzer \ clang \ clang++ \ clang-check \ clang-cpp \ clang-format \ clang-tblgen \ scan-build \ scan-view FIRST_COMMAND= ${COMMANDS:C/^/XXXX/1:MXXXX*:C/^XXXX//} PORTDATA= scanview.css \ sorttable.js .include .if ${PORT_OPTIONS:MASSERTS} CONFIGURE_ARGS+= --enable-assertions RELTYPE= Release+Asserts .else CONFIGURE_ARGS+= --disable-assertions RELTYPE= Release .endif .include .if ${PORT_OPTIONS:MASSERTS} pre-fetch: @if [ "`llvm-config${LLVM_SUFFIX} --build-mode`" != ${RELTYPE} ]; then \ ${ECHO_MSG} ;\ ${ECHO_MSG} ASSERTS option enabled, but devel/llvm${LLVM_SUFFIX} was compiled without ASSERTS. ;\ ${ECHO_MSG} Correct options mismatch to proceed. ;\ ${ECHO_MSG} ;\ false ;\ fi .endif post-extract: ${RM} -f ${BUILD_WRKSRC} ${MV} ${WRKDIR}/${CLANG_EXTRACT} ${BUILD_WRKSRC} post-patch: ${REINPLACE_CMD} -e 's|${PORTVERSION}svn|${PORTVERSION}|g' \ ${WRKSRC}/configure ${REINPLACE_CMD} -e 's|\(PROJ_docsdir.*:=\).*$$|\1${DOCSDIR}|g' \ ${WRKSRC}/Makefile.config.in ${REINPLACE_CMD} -e 's|\(PROJ_mandir.*:=\).*$$|\1${MANPREFIX}/man|g' \ ${WRKSRC}/Makefile.config.in ${REINPLACE_CMD} -e 's|/usr/local/|${LOCALBASE}/|g' \ ${WRKSRC}/tools/clang/lib/Frontend/InitHeaderSearch.cpp ${REINPLACE_CMD} -e 's|%%DATADIR%%|${DATADIR}/|g' \ -e 's|%%LLVM_SUFFIX%%|${LLVM_SUFFIX}|g' \ ${WRKSRC}/tools/clang/tools/scan-build/scan-build pre-build: ${LN} -sf ${LLVM_PREFIX}/include/llvm/IR/Intrinsics.gen \ ${WRKSRC}/include/llvm/IR/ ${MKDIR} ${WRKSRC}/${RELTYPE}/lib ${LN} -sf ${LLVM_PREFIX}/lib/${LIBNAME} ${WRKSRC}/${RELTYPE}/lib/ ${LN} -sf ${LLVM_PREFIX}/lib/libLLVMTableGen.a ${WRKSRC}/${RELTYPE}/lib/ ${LN} -sf ${LLVM_PREFIX}/lib/libLLVMSupport.a ${WRKSRC}/${RELTYPE}/lib/ cd ${WRKSRC}/utils/unittest && ${MAKE_CMD} post-build: @cd ${WRKSRC}/tools/clang/docs/tools && ${MAKE_CMD} man @cd ${WRKSRC}/tools/clang/docs/tools && ${MAKE_CMD} html ps post-install: ${STRIP_CMD} ${STAGEDIR}${LLVM_PREFIX}/lib/libclang.so ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/clang \ ${STAGEDIR}${LLVM_PREFIX}/bin/clang-cpp ${INSTALL_SCRIPT} ${WRKDIR}/llvm-wrapper.sh \ ${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX} ${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/tools/scan-build/ccc-analyzer \ ${WRKSRC}/tools/clang/tools/scan-build/c++-analyzer \ ${WRKSRC}/tools/clang/tools/scan-build/scan-build \ ${WRKSRC}/tools/clang/tools/scan-view/scan-view \ ${STAGEDIR}${LLVM_PREFIX}/bin/ ${MKDIR} ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${WRKSRC}/tools/clang/tools/scan-build/scanview.css \ ${WRKSRC}/tools/clang/tools/scan-build/sorttable.js \ ${STAGEDIR}${DATADIR} .for command in ${COMMANDS:C/^/XXXX/1:NXXXX*} test -e ${STAGEDIR}${LLVM_PREFIX}/bin/${command} ${LN} -f ${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX} \ ${STAGEDIR}${PREFIX}/bin/${command}${LLVM_SUFFIX} .endfor ${MKDIR} ${STAGEDIR}${PYTHONLIBDIR} ${MKDIR} ${STAGEDIR}${PYTHONLIBDIR}/Resources ${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/tools/scan-view/*.py \ ${STAGEDIR}${PYTHONLIBDIR} ${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/tools/scan-view/Resources/* \ ${STAGEDIR}${PYTHONLIBDIR}/Resources ${MKDIR} ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${WRKSRC}/tools/clang/tools/scan-build/scanview.css \ ${WRKSRC}/tools/clang/tools/scan-build/sorttable.js \ ${STAGEDIR}${DATADIR} cd ${WRKSRC}/tools/clang/docs/tools && \ ${MAKE_CMD} DESTDIR=${STAGEDIR}/ install-html install-ps ${INSTALL_MAN} ${WRKSRC}/tools/clang/docs/tools/clang.1 \ ${STAGEDIR}${MANPREFIX}/man/man1/clang${LLVM_SUFFIX}.1 ${INSTALL_MAN} ${WRKSRC}/tools/clang/tools/scan-build/scan-build.1 \ ${STAGEDIR}${MANPREFIX}/man/man1/scan-build${LLVM_SUFFIX}.1 PLIST_FILE_LIST= ${COMMANDS:S|^|bin/|} \ lib/libclang* PLIST_DIR_LIST= include/clang \ include/clang-c \ lib/clang \ lib/python build-plist: ${RM} -f ${PLIST} .for command in ${COMMANDS} ${ECHO_CMD} bin/${command}%%LLVM_SUFFIX%% >> ${PLIST} .endfor (ls ${PLIST_FILE_LIST:S|^|${STAGEDIR}${LLVM_PREFIX}/|}; \ ${FIND} ${PLIST_DIR_LIST:S|^|${STAGEDIR}${LLVM_PREFIX}/|} -type f) \ | ${SED} -e 's|${STAGEDIR}${PREFIX}/||' \ -e 's|${LLVM_SUFFIX}|%%LLVM_SUFFIX%%|' | ${SORT} >> ${PLIST} echo man/man1/clang%%LLVM_SUFFIX%%.1.gz >> ${PLIST} echo man/man1/scan-build%%LLVM_SUFFIX%%.1.gz >> ${PLIST} ${FIND} ${STAGEDIR}${DOCSDIR} -type f | \ ${SED} -e 's|${STAGEDIR}${DOCSDIR}|%%PORTDOCS%%%%DOCSDIR%%|' | \ ${SORT} >> ${PLIST} ${FIND} ${PLIST_DIR_LIST:S|^|${STAGEDIR}${LLVM_PREFIX}/|} -type d | \ ${SED} -e 's|${STAGEDIR}${PREFIX}/|@dirrm |' \ -e 's|${LLVM_SUFFIX}|%%LLVM_SUFFIX%%|' | \ ${SORT} -r >> ${PLIST} ${FIND} ${STAGEDIR}${DOCSDIR} -type d | ${SORT} -r | \ ${SED} -e 's|${STAGEDIR}${DOCSDIR}|%%PORTDOCS%%@dirrm %%DOCSDIR%%|' \ >> ${PLIST} .if make(svn-patch) .if !defined(PATCH_REV) .error svn-patch requires that PATCH_REV be set .endif _PATCH_FILE=${FILESDIR}/patch-svn-${PATCH_REV} _LLVM_BASE=http://llvm.org/svn/llvm-project/cfe/trunk svn-patch: ${PRINTF} "$$%s$$\n" FreeBSD > ${_PATCH_FILE} svn log -c ${PATCH_REV} ${_LLVM_BASE} >> ${_PATCH_FILE} svn diff -c ${PATCH_REV} ${_LLVM_BASE} | \ ${SED} -e 's;^--- ;--- tools/clang/;' | \ ${SED} -e 's;^+++ ;+++ tools/clang/;' >> \ ${_PATCH_FILE} .endif .include Index: head/lang/clang35/files/patch-fformat_extensions.diff =================================================================== --- head/lang/clang35/files/patch-fformat_extensions.diff (nonexistent) +++ head/lang/clang35/files/patch-fformat_extensions.diff (revision 374918) @@ -0,0 +1,45 @@ +diff -ruN tools/clang/include/clang/Basic/LangOptions.def tools/clang/include/clang/Basic/LangOptions.def +--- tools/clang/include/clang/Basic/LangOptions.def 2014-07-16 07:13:50.000000000 +0400 ++++ tools/clang/include/clang/Basic/LangOptions.def 2014-10-24 21:38:38.000000000 +0400 +@@ -87,6 +87,7 @@ + LANGOPT(RTTIData , 1, 1, "emit run-time type information data") + LANGOPT(MSBitfields , 1, 0, "Microsoft-compatible structure layout") + LANGOPT(Freestanding, 1, 0, "freestanding implementation") ++LANGOPT(FormatExtensions , 1, 0, "FreeBSD format extensions") + LANGOPT(NoBuiltin , 1, 0, "disable builtin functions") + LANGOPT(NoMathBuiltin , 1, 0, "disable math builtin functions") + +diff -ruN tools/clang/include/clang/Driver/Options.td tools/clang/include/clang/Driver/Options.td +--- tools/clang/include/clang/Driver/Options.td 2014-08-07 08:51:51.000000000 +0400 ++++ tools/clang/include/clang/Driver/Options.td 2014-10-24 21:39:23.000000000 +0400 +@@ -563,6 +563,8 @@ + + def ffreestanding : Flag<["-"], "ffreestanding">, Group, Flags<[CC1Option]>, + HelpText<"Assert that the compilation takes place in a freestanding environment">; ++def fformat_extensions: Flag<["-"], "fformat-extensions">, Group, Flags<[CC1Option]>, ++ HelpText<"Enable FreeBSD kernel specific format string extensions">; + def fgnu_keywords : Flag<["-"], "fgnu-keywords">, Group, Flags<[CC1Option]>, + HelpText<"Allow GNU-extension keywords regardless of language standard">; + def fgnu89_inline : Flag<["-"], "fgnu89-inline">, Group, Flags<[CC1Option]>, +diff -ruN tools/clang/lib/Driver/Tools.cpp tools/clang/lib/Driver/Tools.cpp +--- tools/clang/lib/Driver/Tools.cpp 2014-08-07 08:51:51.000000000 +0400 ++++ tools/clang/lib/Driver/Tools.cpp 2014-10-24 21:39:54.000000000 +0400 +@@ -3517,6 +3517,7 @@ + + // Forward -f (flag) options which we can pass directly. + Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls); ++ Args.AddLastArg(CmdArgs, options::OPT_fformat_extensions); + Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions); + Args.AddLastArg(CmdArgs, options::OPT_fstandalone_debug); + Args.AddLastArg(CmdArgs, options::OPT_fno_standalone_debug); +diff -ruN tools/clang/lib/Frontend/CompilerInvocation.cpp tools/clang/lib/Frontend/CompilerInvocation.cpp +--- tools/clang/lib/Frontend/CompilerInvocation.cpp 2014-08-07 08:51:51.000000000 +0400 ++++ tools/clang/lib/Frontend/CompilerInvocation.cpp 2014-10-24 21:40:32.000000000 +0400 +@@ -1443,6 +1443,7 @@ + Opts.ShortWChar = Args.hasFlag(OPT_fshort_wchar, OPT_fno_short_wchar, false); + Opts.ShortEnums = Args.hasArg(OPT_fshort_enums); + Opts.Freestanding = Args.hasArg(OPT_ffreestanding); ++ Opts.FormatExtensions = Args.hasArg(OPT_fformat_extensions); + Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding; + Opts.NoMathBuiltin = Args.hasArg(OPT_fno_math_builtin); + Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new); Property changes on: head/lang/clang35/files/patch-fformat_extensions.diff ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property