Cross compile world on i386 to x86_64

Ruslan Ermilov ru at freebsd.org
Sat Dec 2 09:01:22 PST 2006


On Sat, Dec 02, 2006 at 06:57:32PM +0530, Joseph Koshy wrote:
> >Can I avoid reinstalling the system with amd64 binaries by
> >cross-compiling world and kernel for amd64 on the installed
> >i386 FreeBSD-CURRENT?
> 
> Yes, it is possible, do check the archives for the details.
> 
We've been doing this "upgrade" last week;
compared to the last time I checked it, the
32-bit compatibility only improved, so the
whole process was much simpler, and basically
was like this:

- cross-compile amd64 world and kernel on i386

- install the amd64 kernel

- reboot with the amd64 kernel and i386 world
  into single user mode.  At this point, the
  dynamically linked i386 binaries could not
  be used because ld-elf32.so.1 is not yet
  available, so we used /rescue binaries to
  do what's needed (re-mount root file system
  r/w, mount other file systems, etc.)

- after that, we installed the amd64 world by
  faking it into thinking that it's running
  on the i386 box and cross-install to amd64
  (because object directories are layed out
  for this during the build):

	env MACHINE_ARCH=i386 MACHINE=i386 \
	    make TARGET_ARCH=amd64 \
	    DESTDIR=/ installworld

- after that, run mergemaster(8) to update
  /etc, and you should be able to boot into
  amd64 multiuser mode.

I wouldn't recommend this procedure for those
not familiar with the internals of the build
process.


Cheers,
-- 
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-amd64/attachments/20061202/020e87b3/attachment.pgp


More information about the freebsd-amd64 mailing list