Difference between revisions of "User:Hef/ispc on rpi2"
(→setup) |
|||
Line 7: | Line 7: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
− | == ninja == | + | == first attempt == |
+ | |||
+ | === ninja === | ||
<syntaxHighlight lang=bash> | <syntaxHighlight lang=bash> | ||
git clone git://github.com/martine/ninja.git | git clone git://github.com/martine/ninja.git | ||
Line 16: | Line 18: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
− | == clang == | + | === clang === |
<syntaxHighlight lang=bash> | <syntaxHighlight lang=bash> | ||
git clone http://llvm.org/git/llvm.git | git clone http://llvm.org/git/llvm.git | ||
Line 31: | Line 33: | ||
I didn't fully test the <code>-j</code> (concurrent build) options to ninja. ninja defaults to 6 on the rpi2. You will run out of memory if you do this. Even if you create larger swap for the pi, swapping to an sd card is a really major performance hit and you will be better of using fewer cores. | I didn't fully test the <code>-j</code> (concurrent build) options to ninja. ninja defaults to 6 on the rpi2. You will run out of memory if you do this. Even if you create larger swap for the pi, swapping to an sd card is a really major performance hit and you will be better of using fewer cores. | ||
− | == self hosted clang == | + | === self hosted clang === |
<syntaxHighlight lang=bash> | <syntaxHighlight lang=bash> | ||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ ../llvm -G Ninja | cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ ../llvm -G Ninja | ||
</syntaxHighlight> | </syntaxHighlight> | ||
− | == ispc == | + | === ispc === |
<syntaxHighlight lang=bash> | <syntaxHighlight lang=bash> | ||
make ARM_ENABLED=1 -j4 | make ARM_ENABLED=1 -j4 | ||
</syntaxHighlight> | </syntaxHighlight> |
Revision as of 23:33, 26 March 2015
setup
gcc 4.6 both won't compile latest llvm/clang and will generate an ICE on older versions of clang.
<syntaxHighlight lang=bash> sudo apt-get install cmake gcc-4.8 g++-4.8 bison flex libncurses5-dev subversion </syntaxHighlight>
first attempt
ninja
<syntaxHighlight lang=bash> git clone git://github.com/martine/ninja.git cd ninja git checkout release ./configure.py --bootstrap sudo cp ninja /usr/local/bin/ninja </syntaxHighlight>
clang
<syntaxHighlight lang=bash> git clone http://llvm.org/git/llvm.git cd llvm/tools git clone http://llvm.org/git/clang.git cd ../../.. mkdir llvm-build cd llvm-build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/bin/gcc-4.8 -DCMAKE_CXX_COMPILER=/usr/bin/g++-4.8 ../llvm -G Ninja ninja -j1 </syntaxHighlight>
Ninja will take many hours to complete.
I didn't fully test the -j
(concurrent build) options to ninja. ninja defaults to 6 on the rpi2. You will run out of memory if you do this. Even if you create larger swap for the pi, swapping to an sd card is a really major performance hit and you will be better of using fewer cores.
self hosted clang
<syntaxHighlight lang=bash> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ ../llvm -G Ninja </syntaxHighlight>
ispc
<syntaxHighlight lang=bash> make ARM_ENABLED=1 -j4 </syntaxHighlight>