Are you saying that it works with an earlier version of gcc combined with icpc? I got the same undefined references using red hat gcc 4.4.4 or 4.7 with icpc 12.1.1 and red hat boost. icpc 12.1.1 appears to have caught up to g++ in the syntax used here but not in implementation of builtins.
I mean the code compile sucessfully with g++ (no icpc involved at all). But failed with icpc 12.1 when used on a platform with g++ 4.6. However, the same code successfully compile with icpc when used on Mac OS X(but that is totally another story and I don't think is releavant here, since Apple now don't even deliver pure gcc/g++ in Xcode 4.2, they supply llvm-gcc, etc)
Update: I just tested it on Red hat Linux 6.2 beta, with boost 1.47, and gcc/g++ 4.4.6, the same error remains. It happends also for the systems's default boost 1.41
It's only necessary to put the g++ you want first on PATH and LD_LIBRARY_PATH, so that g++ -v shows you the intended version. If you were to rebuild the kernel, or a driver which refers to kernel source, you might have a case for reverting to the corresponding gcc version for that task. Most current linux distros which provide a gcc 4.1 kernel also provide an optional gcc/gcc++ of at least version 4.4. For C++0x features you likely want a recent g++ 4.6 to go with icpc 12.1, and you may wish to upgrade to a current g++ when icpc 13.0 is released. You may wish to avoid mixing C++ .o files built with different major underlying versions of g++. I give only personal opinion based on limited experience on this subject.
An evident advantage of icpc 13.0 is compatibility with g++ 4.7. There are cases of performance improvement for earlier architectures, as well as improved support for AVX, AVX2 (not yet in released hardware) and MIC.