32 bit ports on an AMD64 system
b. f.
bf1783 at googlemail.com
Mon Aug 31 18:02:43 UTC 2009
>> /usr/local/[same-as-before]-32 (i.e. [...]/bin32, [...]/lib32,
>> [...]/libexec32, etc)
>The one above sounds most logical. The base system puts 32 bit libraries in
>/usr/lib32.
It's too much trouble to append a 32 to every subdirectory of
/usr/local/ -- I'd still recommend something like
PREFIX=/usr/local/32, with all relative paths the same.
>Currently the ports system is not set up to handle multiple versions of the
>same port, AFAIK. You could ask on the ports list.
Multiple versions of the same port with different PKGNAME s can be
handled. Otherwise, no.
>You'd need a separate
>/var/db/pkg32 to store information about installed 32-bit ports. And
>/var/db/ports32 for options for 32-bit ports. You would also need changed port
>makefiles (different /ve/db paths, -m32 flag etc.) for this to work. It should
>be possible, but I don't think anybody has volunteered to do the work yet. :-)
In many cases, the same port Makefile would suffice, using the
make.conf additions I mentioned in my earlier message. In some cases,
you may have to add patches to the port or change the port Makefile.
The point about the package registration is a good one. It would
certainly be easier to maintain two separate package databases. To do
so, and to also have different OPTIONS-handling for the 32-bit ports
via separate ports databases, then you could simply add:
PKG_DBDIR=/var/db/pkg32
PORT_DBDIR=/var/db/ports32
to the make.conf block in my last message.
However, I think it would be better to instead maintain unified
package and port databases and somehow differentiate between the
entries for 32-bit and 64-bit packages, by either tinkering with the
fake-pkg target in bsd.port.mk, or, preferably, by changing the
PKGNAME and UNIQUENAME. The simplest way to do this would be to add a
block like
.ifdef(32BIT)
PKGNAMEPREFIX+=32
.endif
just before the definitions of PKGNAME and UNIQUENAME in bsd.port.mk.
...
>(* 'need' in this case means that you are regularly running out of address
>space on i386.)
Or if you need improved performance from a 64-bit app, etc.
As the I and the others have mentioned, a jail or a separate 32-bit
installation would probably be better.
b.
More information about the freebsd-questions
mailing list