Re: Can't build RELENG_6 from HEAD?

From: Doug Ambrisko <ambrisko_at_ambrisko.com>
Date: Fri, 13 Jul 2007 12:07:15 -0700 (PDT)
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.
Received on Fri Jul 13 2007 - 17:35:49 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:14 UTC