Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Apr 2006 21:38:19 +0800
From:      Astrodog <astrodog@gmail.com>
To:        "Danny Braniss" <danny@cs.huji.ac.il>
Cc:        freebsd-amd64@freebsd.org
Subject:   Re: safe way to build i386 arch makeworld on amd64 arch?
Message-ID:  <2fd864e0604070638n11ff30f1pa9ad3fe5ac669ea7@mail.gmail.com>
In-Reply-To: <E1FRohf-000B4K-BW@cs1.cs.huji.ac.il>
References:  <patrick@cyberwizards.nl> <20060407114033.J30882@gandalf.cyberwizards.nl> <E1FRohf-000B4K-BW@cs1.cs.huji.ac.il>

next in thread | previous in thread | raw e-mail | index | archive | help
On 4/7/06, Danny Braniss <danny@cs.huji.ac.il> wrote:
> > hello list,
> >
> > is there a save way to 'downgrade' an amd64 build system by using 'make=
 world' ?
> >
> > e.g. just remove the CPUTYPE=3Dopteron from the make.conf file and do a
> > build world/kernels install world/kernels ?
> >
> > of do we need to do some more for this?
> >
> > thanks in advance
> >
> > Regards
> > patrick
> >

To downgrade? Not realistically.

> you can, i do:
>         export MAKEOBJDIRPREFIX=3D/somwhersafe-i386
>         make TARGET_ARCH=3Di386 buildworld
> same for buildkernel, installworld/installkernel, and also you can specif=
y
> a different DESTDIR=3D
>
> danny
>

That would certainly allow him to crosscompile an i386 kernel, and
world, but wouldn't have much effect on downgrading from AMD64 to
i386, since you run into a chicken or the egg problem with the kernel,
and world. (a 64-bit kernel does not play nice on a 32-bit world,
without some hacking around, and a 32-bit kernel does not play nice on
a 64-bit world), which makes it impossible to actually do both steps.

If you install the 32-bit kernel first, and reboot, the kernel won't
be able to run the 64-bit binaries. If you install the 32-bit world
first, the 64-bit kernel will become very, very sad, and won't let the
installation complete.

If you try to install the kernel, then the world without a reboot, you
have the same problem as installing the 32-bit world first, since even
with a 32-bit kernel installed, you're still RUNNING the 64-bit kernel
until you reboot.

There are actually ways to do this, but its almost always a bad idea.
Not to mention this will break any packages, or ports you're using
too, with the exception, perhaps, of Linux Compat.



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