Can't build RELENG_6 from HEAD?
Doug Ambrisko
ambrisko at ambrisko.com
Fri Jul 13 19:35:49 UTC 2007
Matthew Jacob writes:
| gcc 4.X will barf all over RELENG_6 code. Better start thinking about
| a jailed build.
And if you do script something like:
#!/bin/sh
UNAME_s="FreeBSD"
UNAME_m="i386"
UNAME_p="i386"
ROOT=$HOME/stable_$UNAME_p
REVISION=`cd ${ROOT}/sys/conf && grep REVISION= newvers.sh | cut -f2 -d'"'`
BRANCH=`cd ${ROOT}/sys/conf && grep BRANCH= newvers.sh | head -n1 | cut -f2 -d'"'`
UNAME_r=$REVISION-$BRANCH
UNAME_v="$UNAME_s $UNAME_r #0: Thu May 4 07:54:55 PDT 2006 root at a21p:/data/home/ambrisko/current/usr/src/sys/$UNAME_p/compile/THINK"
OSVERSION=`awk '/\#define.*__FreeBSD_version/ { print $3 }' < ${ROOT}/sys/sys/param.h`
export UNAME_s UNAME_r UNAME_v UNAME_m UNAME_p OSVERSION ROOT
if [ -r $ROOT/dev/zero ]
then
echo dev already mounted
else
sudo mount -t devfs dev $ROOT/dev
fi
sudo ln -sf ld-elf.so.1 $ROOT/libexec/ld-elf32.so.1
sudo sh -c '( echo "libpthread.so.2 libthr.so.2" ;\
echo "libpthread.so libthr.so") > ${ROOT}/etc/libmap.conf'
sudo cp ${ROOT}/etc/libmap.conf ${ROOT}/etc/libmap32.conf
sudo chroot $ROOT
You can then build i386 on amd64 or i386 on i386. Ports will build and
pkg_add works :-) Inside uname -a will report 6.X for i386.
I think it would be nice to put some of this into the src/Makefile
so you can do "make chroot" and it would set this up and throw you into
a chroot/jail/vimage.
At work we extended it to 4.X. This way we can build everything
on a FreeBSD amd64 machine for 6.X i386, 6.X amd64 or 4.X i386 code.
The 4.X is important to link with 3rd party code. It simplifies our
build machines and I can build our stuff on a amd64 -current box.
Doug A.
More information about the freebsd-current
mailing list