ia32 ports...

Coleman Kane zombyfork at gmail.com
Thu Mar 3 15:18:11 GMT 2005


On Tue, 01 Mar 2005 07:22:30 -0500, Sean <rsh.lists at comcast.net> wrote:
> Steve Kargl wrote:
> > On Mon, Feb 28, 2005 at 08:49:05PM -0500, Sean wrote:
> >
> >>I thought I have seen posts stating that people are using 32 version of
> >>programs on 64 bit amd?
> >
> >
> > It's a very simple concept.  If you have 64-bit FreeBSD dynamic
> > linked binaries, you need the 64-bit FreeBSD shared libraries to
> > run them.  If you have 32-bit FreeBSD dynamic linked binaries,
> > then you need the 32-bit FreeBSD shared libraries to run them.
> > If you have the 32-bit linux dynamic binaries, then you need to
> > have the 32-bit linux shared libraries.  I have 314 libraries and
> > symlinks in /usr/lib32.
> >
> >
> >>So I guess some people have done this with the two copies you mentioned?
> >
> >
> > David was talking about *building* the 32-bit software on a 64-bit
> > machine.  This isn't supported.  What you can do is take a 32-bit
> > binary, built on a 32-bit machine, and run it on your 64-bit amd64
> > system.  "make buildworld" is setup to build the needed 32-bit
> > libraries and loader on a 64-bit system/
> >
> >
> >>Then why if these 32 bit programs can't easily be built, if at all, do
> >>we add such things as with_lib32=yes to make.conf and options like
> >>LINPROCFS, COMPAT_LINUX32 ,COMPAT_IA32 , COMPAT_FREEBSD4 ,COMPAT_43 to
> >>the kernel config?
> >>I thought with these added in 32 bit program support was available?
> >
> >
> > Yes.
> >
> But all this means the 32 bit versions can't be built on a 64 bit version?
> 

They can be built, it is just difficult to build them. The latest
versions of gcc and ld support a 32-bit executable target now. You
would need to have some way of selecting which target (32-bit or
64-bit) you were compiling to in the .mk files. In addition, you'd
need all of this  automated across all ports, which is probably not
easy.

I have managed to build 32-bit binaries using the existing tools. The
problem is, I haven't built 32-bit versions of things like Xorg and
libgtk, libgnome, etc.... The solution seems like it would be easy,
but actually doing the work and effort to make sure it works across
the board is something else entirely.

It is important to know that 32-bit binaries won't work with your
existing 64-bit libs, and 64-bit binaries won't work with your 32-bit
libs. It just won't happen, it is architectural in nature.


More information about the freebsd-amd64 mailing list