Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Jul 2007 12:07:15 -0700 (PDT)
From:      Doug Ambrisko <ambrisko@ambrisko.com>
To:        Matthew Jacob <lydianconcepts@gmail.com>
Cc:        Max Laier <max@love2party.net>, freebsd-current@freebsd.org
Subject:   Re: Can't build RELENG_6 from HEAD?
Message-ID:  <200707131907.l6DJ7Fu1090309@ambrisko.com>
In-Reply-To: <7579f7fb0707131121s2725d0a7o34dc81cd2c6cf9f@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707131907.l6DJ7Fu1090309>