[GRASS-dev] A couple problems compiling with icc
Hamish
hamish_b at yahoo.com
Tue May 15 07:59:40 EDT 2012
Hi,
I managed to compile GRASS with Intel's icc and icpc compilers v12.1.3
on Debian/stable 64bit, mostly to test out the auto-parallelization to
see what would be good candidates for OpenMP work. it wasn't too ugly:
CC=icc CXX=icpc CFLAGS="-O2 -xHost -ipo -static-intel -parallel -Wall" \
./configure \
--with-tcltk-includes=/usr/include/tcl8.5 --with-cairo \
--with-motif --with-python=/usr/bin/python2.6-config \
--with-readline --with-cxx --with-odbc --with-sqlite \
--with-freetype --with-freetype-includes=/usr/include/freetype2 \
--without-postgres --with-proj-share=/usr/share/proj \
--enable-64bit --with-pthread -with-openmp \
--with-wxwidgets=/usr/lib/wx/config/gtk2-unicode-release-2.8 \
--with-geos \
--with-libs="/opt/intel/composer_xe_2011_sp1.9.293/compiler/lib/intel64 /opt/intel/mkl/lib/intel64" \
2>&1 | tee config_log.txt
I had to manually add "-liomp5" to LINK_FLAGS in Platform.make, not sure
how to do that with ./configure and doubt that LINK_FLAGS is the correct
place to it.
export LD_LIBRARY_PATH=/opt/intel/composer_xe_2011_sp1.9.293/compiler/lib/intel64
# not sure if necessary, but can't hurt..
LD=xild time make -j 8
# how to set alternate 'ld' from ./configure?
it all went ok but for 3 errors:
--
Errors in:
/home/hbowman/dev/grass/src/icc/grass-6.4.2/general/manage/cmd
/home/hbowman/dev/grass/src/icc/grass-6.4.2/imagery/i.smap/shapiro
/home/hbowman/dev/grass/src/icc/grass-6.4.2/vector/v.univar
--
I fixed manage/cmd in devbr6, it was looking for list.h but the file
was actually one directory higher.
i.smap/shapiro in devbr6 I did not fix, it too was looking for a header
which was in ../bouman/bouman.h. I tried adding to shapiro/Makefile:
LOCAL_HEADERS = ../bouman/bouman.h
but it doesn't help, nor does setting the path on the #include line.
Does the object need to be linked as well? (??)
Finally, and also 6.x only(?), with v.univar it did not like to set a
global variable to nan as part of the variable definition:
...
double max = 0.0 / 0.0;
...
main.c(56): error: floating-point operation result is out of range
but in other places in the code where 0./0. is used to create a nan it
does not complain. (hence I wonder if the global variableness of it is
what makes it special)
?
thanks,
Hamish
More information about the grass-dev
mailing list