Date: Fri, 2 Sep 2016 21:33:05 +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: r421277 - in head/devel/llvm38: . files Message-ID: <201609022133.u82LX51j014705@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: brooks Date: Fri Sep 2 21:33:05 2016 New Revision: 421277 URL: https://svnweb.freebsd.org/changeset/ports/421277 Log: Add a hack to make -fopenmp work inspired by a submission from Johannes Dieterich <dieterich@ogolem.org>. This differs from the submission in that it adds the library directly to the linker command line. I chose not to add the llvm library to the search path because that would (e.g.) make it hard to link something that uses a different version of llvm. Added: head/devel/llvm38/files/clang-patch-fopenmp.diff (contents, props changed) Modified: head/devel/llvm38/Makefile Modified: head/devel/llvm38/Makefile ============================================================================== --- head/devel/llvm38/Makefile Fri Sep 2 21:12:22 2016 (r421276) +++ head/devel/llvm38/Makefile Fri Sep 2 21:33:05 2016 (r421277) @@ -2,7 +2,7 @@ PORTNAME= llvm DISTVERSION= 3.8.1 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= devel lang MASTER_SITES= http://llvm.org/${PRE_}releases/${LLVM_RELEASE}/${RCDIR} DISTNAME= ${PORTNAME}-${DISTVERSION}.src @@ -45,6 +45,7 @@ PLIST_FILES= CLANG_DESC= Build clang CLANG_EXTRA_PATCHES= \ ${PATCHDIR}/clang-patch-fformat_extensions.diff \ + ${PATCHDIR}/clang-patch-fopenmp.diff \ ${PATCHDIR}/clang-patch-tools_clang_lib_Headers_CMakeLists.txt \ ${PATCHDIR}/clang-patch-tools_clang_tools_clang-format_clang-format.py \ ${PATCHDIR}/clang-patch-tools_clang_tools_scan-build_libexec_ccc-analyzer @@ -312,6 +313,10 @@ post-build-COMPILER_RT-on: ${WRKSRC_compiler_rt} && \ ${MAKE_ENV} ${MAKE_CMD} +post-patch-CLANG-on: + ${REINPLACE_CMD} -e 's|%%LLVM_PREFIX%%|${LLVM_PREFIX}|' \ + ${PATCH_WRKSRC}/tools/clang/lib/Driver/Tools.cpp + post-install: ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/include/llvm/MC/MCAnalysis ${INSTALL_SCRIPT} ${WRKDIR}/llvm-wrapper.sh \ Added: head/devel/llvm38/files/clang-patch-fopenmp.diff ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/llvm38/files/clang-patch-fopenmp.diff Fri Sep 2 21:33:05 2016 (r421277) @@ -0,0 +1,28 @@ +--- tools/clang/lib/Driver/Tools.cpp.orig 2016-09-02 19:55:01.000873648 +0000 ++++ tools/clang/lib/Driver/Tools.cpp 2016-09-02 19:54:32.001875868 +0000 +@@ -2733,13 +2733,22 @@ + + switch (getOpenMPRuntime(TC, Args)) { + case OMPRT_OMP: +- CmdArgs.push_back("-lomp"); ++ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("%%LLVM_PREFIX%%/lib/libomp.so")) ++ CmdArgs.push_back("-lomp"); ++ else ++ CmdArgs.push_back("%%LLVM_PREFIX%%/lib/libomp.so"); + break; + case OMPRT_GOMP: +- CmdArgs.push_back("-lgomp"); ++ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("%%LLVM_PREFIX%%/lib/libomp.so")) ++ CmdArgs.push_back("-lgomp"); ++ else ++ CmdArgs.push_back("%%LLVM_PREFIX%%/lib/libgomp.so"); + break; + case OMPRT_IOMP5: +- CmdArgs.push_back("-liomp5"); ++ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("%%LLVM_PREFIX%%/lib/libomp.so")) ++ CmdArgs.push_back("-liomp5"); ++ else ++ CmdArgs.push_back("%%LLVM_PREFIX%%/lib/libiomp5.so"); + break; + case OMPRT_Unknown: + // Already diagnosed.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201609022133.u82LX51j014705>