After working around some issues with the current icecream addressed in bug #399259 distributed compiling still doesn't work for me. Remote compile jobs fail with gcc complaining about missing libraries (mostly libmpc.so.2).
Investigating this, I noticed that some essential libraries are left out when the icecream compile environment is put together (f.e. manually by using "icecc --build-native"). The script doing this job (icecc-create-env) is using ldd to scan the compiler binaries recursivly for dependencies. This fails on a recently build gcc with the following error:
eniac ~ # ldd /usr/libexec/gcc/x86_64-pc-linux-gnu/4.5.3/cc1
not a dynamic executable
The reason for this is the recently introduced pax marking of the compiler binaries in through toolchain eclass because of bug #301299 by using the scanelf utility. A padding byte in the ELF header of the binaries is changed to a non-zero value which the glibc ELF loader expects to be zero. So the ldd script which uses the ELF loader fails.
A quick workaround is to install sys-apps/paxctl and merge gcc again. The toolchain eclass then prefers paxctl over scanelf which uses some other kind of marking method.
Thank you, Thomas, for this report. Describes the problem I am seeing with my recent compiles which also utilize icecream.