Using the Makefile coming with it I have no problems to make an executable for my 32-bit Suse 10.2 computer with gcc.
Icc-profile does work too, the problem begins when I try to make profiling step 2:
volker@vpittlik:~/schach/crafty/21.6> make -j linux-icc
... things are going alright nearly to the end until ...
egtb.cpp(5267): (col. 9) remark: LOOP WAS VECTORIZED.
tbdecode.h(637): (col. 9) remark: BLOCK WAS VECTORIZED.
egtb.cpp(5151): (col. 5) remark: BLOCK WAS VECTORIZED.
egtb.cpp: warning #11503: Total routines 1066, routines w/o profile info: 1053
icc -lstdc++ -o crafty crafty.o egtb.o -lm
crafty.o: In function `DisplayChessBoard.':
crafty.c:(.text+0xe1cd): undefined reference to `__svml_irem4'
make[2]: *** [crafty] Fehler 1
(German: Fehler = Error).
After some searches I found out it has something to do with Intel's "Short Vector Math Library". I tried the solution published here:
http://www.intel.com/cd/ids/developer/asmo-na/eng/81970.htm
I copied the code to a file I named "intel-stuff.h" and added the line
#include "intel-stuff.h" to crafty.c.
That didn't help a lot because now I get:
intel-stuff.h(9): error: expected an identifier
extern "C" { __m128d vmldExp2(__m128d a); }
^
intel-stuff.h(9): error: expected a ";"
extern "C" { __m128d vmldExp2(__m128d a); }
^
compilation aborted for crafty.c (code 2)
make[2]: *** [crafty.o] Fehler 2
All hints appreciated.
Volker