Index: Mk/Uses/compiler.mk =================================================================== --- Mk/Uses/compiler.mk +++ Mk/Uses/compiler.mk @@ -96,8 +96,28 @@ .if ${_COMPILER_ARGS:Mopenmp} .if ${COMPILER_TYPE} == clang -USE_GCC= yes +.if ${ARCH} == amd64 +_USES_POST+= localbase:ldflags +.if ${COMPILER_VERSION} < 38 +BUILD_DEPENDS+= llvm40>=0:devel/llvm40 +CPP= ${LOCALBASE}/bin/clang-cpp40 +CC= ${LOCALBASE}/bin/clang40 +CXX= ${LOCALBASE}/bin/clang++40 +CHOSEN_COMPILER_TYPE= clang +.endif +LIB_DEPENDS+= libomp.so.0:devel/openmp +.else +USE_GCC= yes CHOSEN_COMPILER_TYPE= gcc +.if ${COMPILER_FEATURES:Mlibc++} +CXXFLAGS+= -nostdinc++ -isystem /usr/include/c++/v1 +LDFLAGS+= -L${WRKDIR} + +_USES_configure+= 200:gcc-libc++-configure +gcc-libc++-configure: + @${LN} -fs /usr/lib/libc++.so ${WRKDIR}/libstdc++.so +.endif +.endif .endif .endif Index: devel/llvm40/Makefile =================================================================== --- devel/llvm40/Makefile +++ devel/llvm40/Makefile @@ -2,7 +2,7 @@ PORTNAME= llvm DISTVERSION= 4.0.0 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= devel lang MASTER_SITES= http://llvm.org/${PRE_}releases/${LLVM_RELEASE}/${RCDIR} PKGNAMESUFFIX= ${LLVM_SUFFIX} @@ -344,6 +344,7 @@ -e 's|lit\.|lit${LLVM_SUFFIX}.|' \ ${WRKSRC}/utils/lit/lit.py ${WRKSRC}/utils/lit/lit/*.py \ ${WRKSRC}/utils/lit/lit/formats/*.py + ${REINPLACE_CMD} -e 's|CMAKE_INSTALL_PREFIX|${CMAKE_INSTALL_PREFIX}|g' ${WRKSRC}/tools/clang/lib/Driver/Tools.cpp post-patch-CLANG-on: ${REINPLACE_CMD} -e 's|%%LLVM_PREFIX%%|${LLVM_PREFIX}|' \ Index: devel/llvm40/files/clang-patch-fopenmp.diff =================================================================== --- devel/llvm40/files/clang-patch-fopenmp.diff +++ devel/llvm40/files/clang-patch-fopenmp.diff @@ -1,32 +1,35 @@ ---- tools/clang/lib/Driver/Tools.cpp.orig 2017-01-26 08:40:33.955918000 +0000 -+++ tools/clang/lib/Driver/Tools.cpp 2017-01-26 09:41:36.791095000 +0000 -@@ -3216,13 +3216,22 @@ +--- tools/clang/lib/Driver/Tools.cpp.orig 2017-04-15 22:54:19.427146000 -0400 ++++ tools/clang/lib/Driver/Tools.cpp 2017-04-15 23:10:14.340304000 -0400 +@@ -3216,13 +3216,25 @@ switch (TC.getDriver().getOpenMPRuntime(Args)) { case Driver::OMPRT_OMP: - CmdArgs.push_back("-lomp"); -+ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("/usr/local/llvm40/lib/libomp.so")) ++ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("/usr/local/llvm40/lib/libomp.so")){ ++ CmdArgs.push_back("-LCMAKE_INSTALL_PREFIX/lib"); + CmdArgs.push_back("-lomp"); -+ else ++ } else + CmdArgs.push_back("/usr/local/llvm40/lib/libomp.so"); break; case Driver::OMPRT_GOMP: - CmdArgs.push_back("-lgomp"); -+ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("/usr/local/llvm40/lib/libgomp.so")) ++ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("/usr/local/llvm40/lib/libgomp.so")){ ++ CmdArgs.push_back("-LCMAKE_INSTALL_PREFIX/lib"); + CmdArgs.push_back("-lgomp"); -+ else ++ } else + CmdArgs.push_back("/usr/local/llvm40/lib/libgomp.so"); break; case Driver::OMPRT_IOMP5: - CmdArgs.push_back("-liomp5"); -+ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("/usr/local/llvm40/lib/libiomp5.so")) ++ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("/usr/local/llvm40/lib/libiomp5.so")){ ++ CmdArgs.push_back("-LCMAKE_INSTALL_PREFIX/lib"); + CmdArgs.push_back("-liomp5"); -+ else ++ } else + CmdArgs.push_back("/usr/local/llvm40/lib/libiomp5.so"); break; case Driver::OMPRT_Unknown: // Already diagnosed. -@@ -10235,17 +10244,26 @@ +@@ -10239,17 +10251,26 @@ // Also link the particular OpenMP runtimes. switch (ToolChain.getDriver().getOpenMPRuntime(Args)) { case Driver::OMPRT_OMP: Index: math/openblas/Makefile =================================================================== --- math/openblas/Makefile +++ math/openblas/Makefile @@ -73,6 +73,7 @@ .endif .if ${PORT_OPTIONS:MOPENMP} +USE_GCC= yes USES+= compiler:openmp BUILDFLAGS_THREAD+= USE_OPENMP=1 .endif