Robert Watson wrote:

On Thu, 21 May 2009, [email protected] wrote:

How do I compile the system binutils (contrib/binutils) as i386 -> x86_64 cross utils? That is, binutils that will run on an i386 host but will produce x86_64 binaries?

I'm trying to produce a bootstrapping compiler for a port and need to get these working. I've spent a while reading Makefiles but would rather get information from someone who actually knows rather than waste *another* week on this stuff.

I'd rather not compile the entire world if it can be avoided.

Not really my area, but if you haven't found "make toolchain" and "make buildenv" then you might want to take a look. Typically these will be combined with TARGET_ARCH=foo, and in your case foo is 'amd64'. The former builds the toolchain required for the architecture, and the latter creates a shell environment with paths appropriately munged and environments appropriately set to cross-compile using that chain. Normally the toolchain step is part of our integrated buildworld/buildkernel/etc process, but you can also use it for other things with buildenv.

I munged that once to create a nested jail/chroot set up so that default toolchain was the cross set. so if you did 'cc foo.c'
you got a cross binary..

if you needed a native cc you did it in the outside chroot.
worked like a charm.
from the outside, you just did 'chroot cross cc foo.c' to get  cross
binary.


Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[email protected]"

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[email protected]"

Reply via email to