64-bit versions of some ports

Ryan Schmidt ryandesign at macports.org
Wed Jan 30 03:52:35 PST 2008


The ability for MacPorts to build 64-bit versions of ports was  
discussed a little while ago, but I don't think there was any  
resolution. Let's try again. Paulo Moura wrote to me because users of  
his swi-prolog port have requested this (requires dependencies gmp  
and readline to be 64-bit too):

On Jan 30, 2008, at 05:30, Paulo Moura wrote:

> Some time ago, I posted to the mailing list a message about 64 bits  
> variants but received no reply. Maybe you're able to provide me  
> some feedback on this issue. I would like to add 64 bits variants  
> to some port such as "readline" and "gmp". Is my understanding  
> (please correct me if I'm wrong) that 64 bits and 32 bits versions  
> of the same library co-exist peacefully. The reason I'm asking is  
> that some SWI-Prolog users are asking for a 64 bits variant. In  
> order to provide this 64 bits variant I need first to have 64 bits  
> variants in-place for all the libraries SWI-Prolog depend on.

And Randy Melder requested this for my mysql5 port (probably requires  
64-bit openssl and zlib):

On Jan 28, 2008, at 12:35, Randy Melder wrote:

> Is this a 64bit compile, or 32? I seems the 32bit compiles have  
> problems with allocating memory above 2GB.



 From the previous discussion, I remember that we (or rather mww)  
started by changing the +universal variant to build all 4 versions (2  
architectures each of 32-bit and 64-bit) but this was problematic  
because many ports failed to build out of the box as 64-bit, and  
there was no clear upgrade path for those who already had 2- 
architecture universal variants installed, and it was said that 64- 
bit versions of most ports don't make sense anyway (aren't faster, or  
possibly are even slower). But it seems like we want to be able to do  
this for selected ports.

Suppose we say we want to define a new variant called +64bit. Let's  
figure out what we want that to do. Are we asking for a way to build  
a 64-bit local-architecture binary instead of a 32-bit local- 
architecture binary (e.g. x86_64 only)? or in addition to a 32-bit  
local-architecture binary by installing both into separate paths  
(e.g. ${prefix}/lib and ${prefix}/lib64 -- I don't think this is the  
Mac way)? or in addition to a 32-bit local-architecture binary by  
making a single fat binary (e.g. i386 and x86_64 in one file)? What  
if the user selects +universal in addition to +64bit? How will we  
handle that?

I saw some commits fly by (by afb) about the universal support in  
base. Was this something to do with making the universal_archs array  
configurable? If so, is that user-configurable or port-configurable?

The above is really just babbling to demonstrate that I don't know  
what to do about this problem. Maybe someone else can be smarter for  
me and figure it out.



More information about the macports-dev mailing list