Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 407173

Summary: sys-devel/icecream: distributed jobs fail because of missing libraries
Product: Gentoo Linux Reporter: Thomas Elste <info>
Component: Current packagesAssignee: Gentoo Cluster Team <cluster>
Status: UNCONFIRMED ---    
Severity: normal CC: gbugs, gregg.casillo
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
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.