]> git.ipfire.org Git - thirdparty/gcc.git/blob - libcilkrts/README
[Patch AArch64] Fixup floating point division with -march=armv8-a+nosimd
[thirdparty/gcc.git] / libcilkrts / README
1 Intel(R) Cilk(TM) Plus Runtime Library
2
3 Index:
4 1. BUILDING WITH AUTOMAKE
5 2. BUILDING WITH CMAKE
6 3. INSTALLING TO VXWORKS
7 4. USING
8 5. DOXYGEN DOCUMENTATION
9 6. QUESTIONS OR BUGS
10 7. CONTRIBUTIONS
11
12 #
13 # 1. BUILDING WITH AUTOMAKE:
14 #
15
16 To distribute applications that use the Intel Cilk Plus language
17 extensions to non-development systems, you need to build the Intel
18 Cilk Plus runtime library and distribute it with your application.
19
20 To build the libcilkrts.so runtime library component, you need the
21 autoconf and automake packages, which are available through your
22 favorite package manager. You also need a C/C++ compiler that
23 supports the Intel Cilk Plus language extensions, since the runtime
24 uses Intel Cilk Plus features internally. Use either the Intel(R)
25 C++ Compiler (icc command) v12.1 or later, or in GCC 4.9 or later
26 (gcc command).
27
28 Once you have the necessary prerequisites installed, you can use the
29 following commands to create the library:
30
31 % libtoolize
32 % aclocal
33 % automake --add-missing
34 % autoconf
35 % ./configure
36 % make
37 % make install
38
39 This will produce the libcilkrts.so shared object. To install the
40 library in a custom location, set the prefix while running the
41 configure script:
42
43 % ./configure --prefix=/your/path/to/lib
44
45 #
46 # 2. BUILDING WITH CMAKE:
47 #
48
49 To distribute applications that use the Intel Cilk Plus language
50 extensions to non-development systems, you need to build the Intel
51 Cilk Plus runtime library and distribute it with your application.
52 This instruction describes the build process using CMake*, which
53 supports Linux*, Windows*, and OS X*. It is fine to use this process
54 to build a Linux library, but it is highly recommended to use the
55 more mature build process described above when building on Linux.
56
57 You need the CMake tool and a C/C++ compiler that supports the Intel
58 Cilk Plus language extensions, and the requirements for each operating
59 systems are:
60
61 Common:
62 CMake 3.0.0 or later
63 Make tools such as make (Linux, OS X) or nmake (Windows)
64 Linux:
65 GCC* 4.9.2 or later, or Intel(R) C++ Compiler v12.1 or later
66 Windows:
67 Intel C++ Compiler v12.1 or later
68 Visual Studio* 2010 or later
69 OS X:
70 Cilk-enabled branch of Clang*/LLVM* (http://cilkplus.github.io),
71 or Intel C++ Compiler v12.1 or later
72
73 The common steps to build the libraries are 1) invoke cmake with
74 appropriate options, 2) invoke a make tool available on the system.
75 The following examples show build processes on OS X and Windows.
76
77 OS X:
78 % mkdir ./build && cd ./build
79 % cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
80 -DCMAKE_INSTALL_PREFIX=./install ..
81 % make && make install
82
83 Windows:
84 % mkdir .\build && cd .\build
85 % cmake -G "NMake Makefiles" -DCMAKE_C_COMPILER=icl \
86 -DCMAKE_CXX_COMPILER=icl -DCMAKE_INSTALL_PREFIX=.\install ..
87 % nmake && nmake install
88
89 #
90 # 3. INSTALLING TO VXWORKS OS
91 #
92
93 For Windows host, run VxWorks_Install.bat.
94 For Linux host, run VxWorks_Install.sh.
95
96 You may need to give environment variable WIND_BASE to indicate VxWorks
97 installation path.
98
99 Create a VSB project, and you will see a layer named "CILKPLUS_KERNEL".
100 Enable it and build the project.
101
102 Create a VIP project with ICC and add component INCLUDE_CILKPLUS, then you
103 will get support of Intel Cilk Plus features in VxWorks.
104
105 #
106 # 4. USING:
107 #
108
109 The Intel(R) C++ Compiler will automatically try to bring in the
110 Intel Cilk Plus runtime in any program that uses the relevant
111 features. GCC and Clang requires an explicit compiler option,
112 -fcilkplus, to enable Intel Cilk Plus language extensions.
113 For example,
114
115 % gcc -fcilkplus -o foo.exe foo.c
116 % clang -fcilkplus -o foo.exe foo.c
117
118 Older GCC versions (e.g., 4.8 cilkplus branch) requires explicit linking
119 of both the library and its dependencies (libpthread, libdl).
120 For example:
121
122 % gcc foo.c -lcilkrts -lpthread -ldl
123
124 #
125 # 5. DOXYGEN DOCUMENTATION:
126 #
127
128 The library source has Doxygen markup. Generate HTML documentation
129 based on the markup by changing directory into runtime and running:
130
131 % doxygen doxygen.cfg
132
133 #
134 # 6. QUESTIONS OR BUGS:
135 #
136
137 Issues with the Intel Cilk Plus runtime can be addressed in the Intel
138 Cilk Plus forums:
139 http://software.intel.com/en-us/forums/intel-cilk-plus/
140
141 #
142 # 7. CONTRIBUTIONS:
143 #
144
145 The Intel Cilk Plus runtime library is dual licensed. The upstream copy
146 of the library is maintained via the BSD-licensed version available at:
147 http://cilkplus.org/
148
149 Changes to the Intel Cilk Plus runtime are welcome and should be
150 contributed to the upstream version via http://cilkplus.org/.
151
152 Thanks to Tobias Burnus for showing us the magic to make gcc and g++
153 automatically include the Cilk Plus runtime.
154
155 Thanks to Eric Olson for sharing his patch for Raspberry Pi* with us.
156
157 Thanks to Rainer Orth for submitting patches for exception handling and
158 enabling Cilk Plus on the SPARC* architecture.
159
160 ------------------------
161 Intel and Cilk are trademarks of Intel Corporation in the U.S. and/or
162 other countries.
163
164 *Other names and brands may be claimed as the property of others.