Mailinglist Archive: opensuse-packaging (145 mails)
| < Previous | Next > |
Re: [opensuse-packaging] build with cross compiling icecream
- From: Michael Matz <matz@xxxxxxx>
- Date: Tue, 10 Jul 2007 17:43:04 +0200 (CEST)
- Message-id: <Pine.LNX.4.64.0707101727500.26547@xxxxxxxxxxxxx>
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: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx
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: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx
| < Previous | Next > |