I was deferring to someone else the re-tool for cmake. ;) There also seem to be many patchfiles that you've been maintaining, which I haven't tried to grok at all...
Thanks, - Eric On Tue, Oct 13, 2015 at 2:51 AM, Jeremy Huddleston Sequoia <jerem...@macports.org> wrote: > Hey Eric, > > Last month, you mentioned rewriting the llvm Portfile to use the cmake build > system. I think now might be an opportune time to do that in llvm-3.8. Have > you looked into that yet? > > --Jeremy > >> On Sep 3, 2015, at 10:10, Eric A. Borisch <ebori...@macports.org> wrote: >> >> I'll defer on rewriting the portfile for cmake. >> >> I guess I like having libomp separate for now as it's much quicker to >> update (build) it stand-alone while it's still getting frequent >> updates. Note that (apparently) llvm is also packaging the OpenMP >> runtime separately for now -- see the pre-built binaries section of >> http://llvm.org/releases/download.html >> >> I like your patch to teach clang where to look -- I'll add that when I >> have a chance. >> >> >> On Thu, Sep 3, 2015 at 11:21 AM, Jack Howarth >> <howarth.at.macpo...@gmail.com> wrote: >>> You really will want to rewrite the llvm37 Portfile to use a cmake >>> build. The openmp 3.7 can be built in-tree using cmake (with the >>> sources placed at projects/openmp. Also the default for -fopenmp is >>> still left as -fopenmp=libgomp in 3.7.0 but this can be changed >>> with... >>> >>> --- cfe-3.7.0.src/CMakeLists.txt.orig 2015-09-02 12:21:32.000000000 -0400 >>> +++ cfe-3.7.0.src/CMakeLists.txt 2015-09-02 12:21:51.000000000 -0400 >>> @@ -182,7 +182,7 @@ >>> set(DEFAULT_SYSROOT "" CACHE PATH >>> "Default <path> to all compiler invocations for --sysroot=<path>." ) >>> >>> -set(CLANG_DEFAULT_OPENMP_RUNTIME "libgomp" CACHE STRING >>> +set(CLANG_DEFAULT_OPENMP_RUNTIME "libomp" CACHE STRING >>> "Default OpenMP runtime used by -fopenmp.") >>> >>> set(CLANG_VENDOR "" CACHE STRING >>> >>> In fink, we set the explicit location of the buried libomp.dylib with... >>> >>> --- cfe-3.7.0.src/lib/Driver/Tools.cpp.orig 2015-07-02 >>> 09:10:45.000000000 -0400 >>> +++ cfe-3.7.0.src/lib/Driver/Tools.cpp 2015-07-03 21:43:42.000000000 -0400 >>> @@ -6368,12 +6368,18 @@ >>> options::OPT_fno_openmp, false)) { >>> switch (getOpenMPRuntime(getToolChain(), Args)) { >>> case OMPRT_OMP: >>> + // Help clang find libomp.dylib >>> + CmdArgs.push_back("-L@FINK_PREFIX@/opt/llvm-@BRV@/lib"); >>> CmdArgs.push_back("-lomp"); >>> break; >>> case OMPRT_GOMP: >>> + // Help clang find libgomp.dylib >>> + CmdArgs.push_back("-L@FINK_PREFIX@/opt/llvm-@BRV@/lib"); >>> CmdArgs.push_back("-lgomp"); >>> break; >>> case OMPRT_IOMP5: >>> + // Help clang find libiomp5.dylib >>> + CmdArgs.push_back("-L@FINK_PREFIX@/opt/llvm-@BRV@/lib"); >>> CmdArgs.push_back("-liomp5"); >>> break; >>> case OMPRT_Unknown: >>> @@ -8079,9 +8085,13 @@ >>> // Also link the particular OpenMP runtimes. >>> switch (getOpenMPRuntime(ToolChain, Args)) { >>> case OMPRT_OMP: >>> + // Help clang find libomp.dylib >>> + CmdArgs.push_back("-L@FINK_PREFIX@/opt/llvm-@BRV@/lib"); >>> CmdArgs.push_back("-lomp"); >>> break; >>> case OMPRT_GOMP: >>> + // Help clang find libgomp.dylib >>> + CmdArgs.push_back("-L@FINK_PREFIX@/opt/llvm-@BRV@/lib"); >>> CmdArgs.push_back("-lgomp"); >>> >>> // FIXME: Exclude this for platforms with libgomp that don't >>> require >>> @@ -8089,6 +8099,8 @@ >>> CmdArgs.push_back("-lrt"); >>> break; >>> case OMPRT_IOMP5: >>> + // Help clang find libiomp5.dylib >>> + CmdArgs.push_back("-L@FINK_PREFIX@/opt/llvm-@BRV@/lib"); >>> CmdArgs.push_back("-liomp5"); >>> break; >>> case OMPRT_Unknown: >>> >>> to produce -L/sw/opt/llvm-3.7/lib on the linkage. Lastly, to build the >>> fat binary of libomp, >>> you need to pass cmake the flag -DLIBOMP_OSX_ARCHITECTURES="x86_64;i386". >>> Jack >>> ps Note that the perl-based Makefile build is no longer functional in >>> 3.7.0 and is in the process of being completely removed for the 3.8.0 >>> release. >>> >>> On Wed, Sep 2, 2015 at 9:59 PM, Jeremy Huddleston Sequoia >>> <jerem...@macports.org> wrote: >>>> Looks good to me. Could you go ahead and push this to svn and also do >>>> similar changes to the llvm-3.8 port for your openmp variant? >>>> >>>> Thanks, >>>> Jeremy >>>> >>>>> On Sep 2, 2015, at 15:34, Eric A. Borisch <ebori...@macports.org> wrote: >>>>> >>>>> Would have done a ticket, but with trac down.... >>>>> >>>>> Attached is a patch to update to the released llvm/clang-3.7 (this >>>>> comments out the svn fetch code, removes the default +assertions, and >>>>> adds checksums) >>>>> >>>>> As OpenMP is one of the much discussed items that llvm-3.7 brings to the >>>>> table, I've added a +openmp variant to clang-3.7. This variants pulls in >>>>> port:libomp and sets up clang such that "-fopenmp" will use it by >>>>> default. This makes it much more likely for tools like autoconf to detect >>>>> OpenMP support. (Without the variant, openmp support is still there, but >>>>> it requires -fopenmp=libomp, which isn't in the set of standard "can we >>>>> do OpenMP" flags.) If people are supportive of it, I would suggest making >>>>> it a default variant. >>>>> >>>>> Note that -I/opt/local/include and -L/opt/local/lib (assuming standard >>>>> MacPorts install location) are required with -fopenmp for things to work >>>>> and not complain about missing omp.h or -lomp. >>>>> >>>>> If there is someone more familiar with clang/llvm building (of the tools >>>>> themselves), it might be interesting to consider baking in those -I/-L >>>>> flags (or move the libomp include/lib install directories so they only >>>>> have omp.h and the libomp*.dylib files and using those) so -fopenmp would >>>>> "just work." (Without the extra -I and -L)... Let me know if there is >>>>> interest and I can rework the libomp port to support this. >>>>> >>>>> Thanks, >>>>> - Eric >>>>> <llvm-3.7.patch> >>>> >>>> _______________________________________________ >>>> macports-dev mailing list >>>> macports-dev@lists.macosforge.org >>>> https://lists.macosforge.org/mailman/listinfo/macports-dev > _______________________________________________ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev