[MS]: I met a few problems when compiling tcl with Intel's icc6.0 compiler for linux [http://www.intel.com/software/products/global/eval.htm]. This is how I (mostly) solved them. * '''Difficulty #1:''' icc writes to stderr even on succesful compilations without warnings, gcc does not. This was tripping part of the configure script. ''Solution: write a driving script that intercepts the offending writing.'' * '''Difficulty #2:''' the configure script was producing an unusable set of macros (my guess is that the substitute headers provided with icc should also include a substitute for ). ''Solution: use the "-D_GNU_SOURCE" flag'' * '''Difficulty #3:''' icc seems to choke on constant C-strings defined by a macro; this is stopping the compilation of generic/tclCmdIL.c (pseudo-fixed by replacing TCL_SHLIB_EXT by ".so" in line 1748) and unix/tclUnixInit.c (pseudo-fixed by using a gcc-compiled tclUixInit.o; the problems are in lines 55 (TCL_LIBRARY) and 63 (TCL_PACKAGE_PATH)). ''Solution: not found, but neither really looked for.'' ---- Difficulties #1 and #2 were solved by calling thecompiler through the following script (which can certainly be improved by some better bash programmer than myself): #! /bin/sh if [ $# != 0 ] then ## ## REPLACEMENT for the icc script in order to compile tcl ## ## Replacement was needed because (AFAIU, which is not much): ## (1) icc writes the filename to stderr even when it compiles ## succesfully and with no warnings ## (2) the configure script was producing an unusable set of flags, ## and defining the macro _GNU_SOURCE fixed that. The problem ## seems to be in the 64bit support headers; is this a ## problem with icc or with tcl's configure script? ## eval /opt/intel/compiler60/ia32/bin/icc -D_GNU_SOURCE "$@" > icc.out 2> icc.err; errCode=$? cat icc.out if (test $errCode -ne 0 || test ` cat icc.err | wc -l` -gt 1); then cat icc.err 1>&2 fi exit $errCode ## END REPLACEMENT else exec -a "/opt/intel/compiler60/ia32/bin/icc" /opt/intel/compiler60/ia32/bin/iccbin; fi