FreeBSD Bugzilla – Attachment 182547 Details for
Bug 210337
[exp-run] allow libiomp for openmp when using clang on amd64
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
latest patch from D6362
D6362.diff (text/plain), 4.34 KB, created by
Johannes M Dieterich
on 2017-05-12 16:42:44 UTC
(
hide
)
Description:
latest patch from D6362
Filename:
MIME Type:
Creator:
Johannes M Dieterich
Created:
2017-05-12 16:42:44 UTC
Size:
4.34 KB
patch
obsolete
>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
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 210337
:
182261
|
182547
|
186836
|
190744
|
190857
|
194147