Hi,

On Mon, 9 Jul 2007, Peter Czanik wrote:

> I made a (very) ugly hack to get it to cross compile and reduce compile 
> times significantly, but that's really not the way it should be solved. 

FWIW our internal build script (which uses internal stuff, so I'm not sure 
it's of any help to you) does it like this:

1) Inside the changeroot, build an distinct identifier for the toolchain 
   in use.  We can use the MD5 sum over the changelogs of the gcc package, 
   binutils and glibc for that:

   changes_md5sum=`LC_ALL=C chroot $BUILD_ROOT rpm -q --changelog 
$gcc_package_name binutils glibc | sed -e '/\*/d' -e '/^$/d' | md5sum | cut -d' 
' -f1`

2) We have a directory containing all unpacked cross-icecream-*-backend 
   rpms, named per the above md5 sum in subdirs per architecture:

% ls -l /mounts/work2/CDs/icecream/envs/f2bf24c90aeb3ecddf955d977b3de95f/s390
total 31178
-rw-r--r-- 1 root root   31497 2007-06-29 00:20 binutils.changes
-rw-r--r-- 1 root root    4599 2007-06-29 00:20 gcc.changes
-rw-r--r-- 1 root root   80380 2007-06-29 00:20 glibc.changes
-rw-r--r-- 1 root root 5313444 2007-06-29 01:00 i386.tar.gz
-rw-r--r-- 1 root root 9217515 2007-06-29 01:40 ia64.tar.gz
-rw-r--r-- 1 root root 5807840 2007-06-29 07:00 ppc64.tar.gz
-rw-r--r-- 1 root root 5766936 2007-06-29 05:40 ppc.tar.gz
-rw-r--r-- 1 root root 5658685 2007-06-29 00:20 x86_64.tar.gz

I.e. here we have five cross compilers to s390 (from 
i386,ia64,ppc,ppc64,x86_64), it's just a random example.

So after building the above md5 sum in (1), we look for them in a 
directory: $BASE/icecream/envs/$MD5/$MY_ARCHITECTURE/*.tar.gz and copy 
them to the /var/cache/icecream dir in addition to the native environment.  
We further set ICECC_VERSION to hold the right value for whatever *.tar.gz 
we found (i.e. they are named according to the host architecture all the 
time).

There's a periodic job which collects new cross-icecream-* packages and 
unpacks them into the above directories.

I.e. it also involves some shell hackery ;-)


Ciao,
Michael.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to