|Summary:||sys-devel/icecream: distributed jobs fail because of missing libraries|
|Product:||Gentoo Linux||Reporter:||Thomas Elste <info>|
|Component:||Current packages||Assignee:||Gentoo Cluster Team <cluster>|
|Package list:||Runtime testing required:||---|
Description Thomas Elste 2012-03-06 21:49:32 UTC
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.
Comment 1 Gregg Casillo 2012-03-19 17:10:05 UTC
Thank you, Thomas, for this report. Describes the problem I am seeing with my recent compiles which also utilize icecream.