コンパイラ
OpenMP/ClangのGetting the source codeの通りにソースを取得。同BuildingにあるようにClangのGetting Started Building and Running Clangに従ってコンパイル。llvmとclangをコンパイルするので時間がかかるが,Mavericksでは何の問題もなく終了した。buildというディレクトリからconfigureとmakeをすると,build/Debug+Asserts以下にbinとlibができる。実行時ライブラリ
次にIntelのOpenMP Runtime Libraryをダウンロード。clangでのビルドに対応しているが,gccを探してバージョンを調べるところでコンパイルが止まってしまう。tools/check-tools.plを編集する。単純に変数$verと$bldを指定した。--- tools/check-tools.pl.orig 2013-12-14 03:08:50.000000000 +0900
+++ tools/check-tools.pl 2014-07-05 16:19:31.000000000 +0900
@@ -276,8 +276,10 @@
# i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
# i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5484)
# i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)
- $stdout =~ m{^.*? \(GCC\) (\d+\.\d+\.\d+) \(.*Apple.*?Inc\. build (\d+)\)}m;
- ( $ver, $bld ) = ( $1, $2 );
+# $stdout =~ m{^.*? \(GCC\) (\d+\.\d+\.\d+) \(.*Apple.*?Inc\. build (\d+)\)}m;
+# ( $ver, $bld ) = ( $1, $2 );
+ $ver = "4.8.2";
+ $bld = "2";
} else {
if ( 0 ) {
} elsif ( $stdout =~ m{^.*? \(GCC\) (\d+\.\d+\.\d+)(?: (\d+))?}m ) {
ちなみにgccはMacPortsのgcc48だが,$ sudo port select gcc mp-gcc48としてあるので,一応
/opt/local/bin/gccがある。もうひとつsrc/makefile.mkで余計なld-flagsをコメントアウトする必要がある。
--- src/makefile.mk.orig 2013-12-14 03:08:48.000000000 +0900
+++ src/makefile.mk 2014-07-05 16:10:20.000000000 +0900
@@ -430,7 +430,7 @@
endif
ifeq "$(os)" "mac"
- ld-flags += -no-intel-extensions
+# ld-flags += -no-intel-extensions
ld-flags += -single_module
ld-flags += -current_version $(VERSION).0 -compatibility_version $(VERSION).0
endif
$ make compiler=clangとするとtmpの下でコンパイルが実行され,tmp/mac_32e…/libiomp5.dylibができる。ヘッダはexports/common/includeにコピーされる。ライブラリは,exports/libというディレクトリを作りコピーした。
0 件のコメント:
コメントを投稿