sysutils/cdrtools in i386 chroot on amd64

Jan Henrik Sylvester me at
Sat Feb 12 14:37:17 UTC 2011

On 02/11/2011 18:27, Marius Strobl wrote:
> On Fri, Feb 11, 2011 at 02:34:02PM +0100, Jan Henrik Sylvester wrote:
>> I am trying to build all ports that I have installed in an i386 chroot
>> environment on an amd64 machine. All work except for sysutils/cdrtools.
>> I have installed an i386 system to some directory, mounted a devfs to
>> the devfs subdirectory, set "MACHINE=i386 ; UNAME_p=i386 ; UNAME_m=i386"
>> and exported them, chrooted to the directory, and called
>> "/etc/rc.d/ldconfig start".
>> sysutils/cdrtools fails with many errors as it still builds for amd64.
>> Is this expected? Should I do more to get an i386 environment? (I have
>> tried to set ARCH and MACHINE_ARCH with no change.)
> Yes, that approach isn't expected to generally work for cross-building
> ports for i386 on amd64. What is expected to work is compiling them in
> an i386 environment on amd64 running a kernel with r210369/rev. 1.103
> of sys/kern/kern_mib.c (r210855/rev. for 8-STABLE) in place
> so the i386 binaries act as if they are running on native i386 without
> hacks like MACHINE, UNAME_* etc being set. The cdrtools port is known
> to be buildable for i386 in an i386 jail on amd64 that way.

Thanks for the explanation!

I did not know about that change and was still using "MACHINE=i386 ; 
UNAME_p=i386 ; UNAME_m=i386" on my 8.2-RC3 laptop, on which I just 
verified it not to be necessary anymore (and sysutils/cdrtools to build).

Since I got about 1200 ports building the old way on 8.1-RELEASE, I 
thought the unconditional hack in sysutils/cdrtools hindering me could 
be wrong, but with the situation really fixed in 8.2, it will not affect 
me anymore as I am going to upgrade my 8.1 package building machine 
pretty soon.

Jan Henrik

More information about the freebsd-ports mailing list