llvm34-3.4.1-0b with clang-omp/openmp support
Jack Howarth <[email protected]>
| Newsgroups | gmane.os.apple.fink.devel |
|---|---|
| Message-ID | <CAP5Ds0BC4Xqj5+2PXo8PGCDkr9-hShsAuWud0Pv+j-wYPM=qWw@mail.gmail.com> |
The attached llvm34.info and the new clang-omp.patch (containing a
merge of current clang-omp github at
commit f9e2fd7640f8fc06ebe1ef2f065c6158f6b4b6ef) provides a clang compiler
with functional -fopenmp support that uses the current libiomp5.dylib built
from llvm.org's openmp svn trunk. The libiomp5.dylib is stored in
%p/opt/llvm-3.4/lib and the clang compiler is perl edited to
emit%p/opt/llvm-3.4/lib/libiomp5.dylib rather than -liomp5 to allow the
shared library to be found. The single omp.h header is stored in
%p/opt/llvm-3.4/lib/clang/%v/include in order to be found by the clang
compiler, The new info file requires a openmp-r208472.tar.gz tar ball
generated with…
svn co -r208472 http://llvm.org/svn/llvm-project/openmp/trunk/ openmp-r20847
tar -zcvf openmp-r20847.tar.gz openmp-r20847
Tested with 'fink -m' on x86_64-apple-darwin11 against Xcode 4.6.3 and on
x86_64-apple-darwin12/13 against Xcode 5.1.1. The resulting clang compiler
in llvm34 produces the OpenMP3.1_Validation test results…
Summary:
S Number of tested Open MP constructs: 62
S Number of used tests: 123
S Number of failed tests: 5
S Number of successful tests: 118
S + from this were verified: 113
Normal tests:
N Number of failed tests: 2
N + from this fail compilation: 0
N + from this timed out 0
N Number of successful tests: 60
N + from this were verified: 57
Orphaned tests:
O Number of failed tests: 3
O + from this fail compilation: 0
O + from this timed out 0
O Number of successful tests: 58
O + from this were verified: 56
and exposed a potentially darwin-specific regression
in bin/c/ctest_omp_taskyield (which segfaults on darwin11/12/13). Reported
as https://github.com/clang-omp/clang/issues/34.
Compiles and completely passes the taskbench-1.0-2011.07.15 from
http://web.cs.uh.edu/%7Eopenuh/download/.
Jack
ps the changes to the current llvm34-3.4.1-0a are…
Index: llvm34.info
===================================================================
RCS file: /cvsroot/fink/dists/10.7/stable/main/finkinfo/languages/
llvm34.info,v
retrieving revision 1.13
diff -r1.13 llvm34.info
4c4
< Revision: 0a
---
> Revision: 0b
42a43,44
> Source7: mirror:sourceforge:fink/openmp-r208472.tar.gz
> Source7-MD5: 26f5b2bcd0e3220316d212f451aec741
56a59,60
> PatchFile6: clang-omp.patch
> PatchFile6-MD5: 1a16e148456889d101bb3026df969e5a
80a85,87
> $patch_filter %{PatchFile6} | patch -p1
> # use complete path to libiomp5.dylib instead of -liomp5
> perl -pi -e 's|-liomp5|%p/opt/llvm-3.4/lib/libiomp5.dylib|g'
lib/Driver/Tools.cpp test/OpenMP/linking.c
178d184
<
962a969,978
>
> pushd %b/../openmp-r208472/runtime
> make -j1 compiler=clang
> OPENMP_DIR=`ls tmp | grep dyn`
> pushd tmp/$OPENMP_DIR
> install -m 755 libiomp5.dylib %i/opt/llvm-3.4/lib
> install_name_tool -id "%p/opt/llvm-3.4/lib/libiomp5.dylib"
"%i/opt/llvm-3.4/lib/libiomp5.dylib"
> install -m 644 omp.h %i/opt/llvm-3.4/lib/clang/%v/include
> popd
> popd
1000a1017
> opt/llvm-3.4/lib/libiomp5.dylib
1035a1053
> %p/opt/llvm-3.4/lib/libiomp5.dylib 5.0.0 %n (>= 3.4-0)
1298a1317,1325
>
> Generate openmp-r208472 with..
> svn co -r208472 http://llvm.org/svn/llvm-project/openmp/trunk/openmp-r20847
> tar -zcvf openmp-r20847.tar.gz openmp-r20847
>
> Current clang-omp.patch generated by diff of clang 3.4 source and
clang-omp from
> git co -b clang-omp https://github.com/clang-omp/clang.git
> at commit f9e2fd7640f8fc06ebe1ef2f065c6158f6b4b6ef.
>
clang-omp.patch
(application/octet-stream, 737.7 KB) - not displayed