2-architecture +universal variants please (was: Re: [32999] trunk/base/ChangeLog)

Juan Manuel Palacios jmpp at macports.org
Thu Jan 17 22:57:08 PST 2008


On Jan 17, 2008, at 12:45 PM, Ryan Schmidt wrote:

>>> 	Mmm, this sounds like the idea is "build for Tiger if we're
>>> on Leopard" even if the user will never use the ports on Tiger.
>>> What's being given up by using the 10.4 SDK instead of 10.5 (i.e.
>>> what fixes, enhancements, etc.)?
>>> 	If there's no real difference, fine.  If there is a difference,
>>> I think it should be an option for those who are going to build on
>>> Leopard and share with Tiger systems, otherwise use the platform- 
>>> native
>>> SDKs.
>>
>> 	Seconded all the way!
>>
>> 	We could have macports.conf settings for both, a) the OS's the  
>> users wishes to build for, Leopard and/or Tiger and/or Panther, and  
>> b) the desired architectures, Intel and/or PowerPc and 32 and/or 64  
>> bits. But in the mean time, while we still don't have that level of  
>> abstraction (we don't, right?), it seems more logical to me to  
>> build as native as possible. Now, universal advocates, hold your  
>> horses! I'm not arguing against universal support itself; I am  
>> arguing, though, against universal support hampering in any way  
>> native builds, which I'm positive is what a considerable majority  
>> of MacPorts users do and need.
>
> The SDK is only used to build a universal binary, when using the  
> +universal variant. The only users who will be using that option are  
> those who by definition want to share the binary with other  
> machines. Ok, maybe they want to share the binary only between  
> Leopard machines. But I still think it's a relatively safe  
> assumption to use the 10.4u SDK when building a universal binary.  
> Until we start having ports for Leopard-only applications...


	Oohhh, I see, wasn't too aware that these SDKs are used only for  
universal builds. Sorry for commenting rather blindly, maybe I should  
have looked at the source before posting.

	So, in this case, I wouldn't be opposed to using the Tiger SDK when  
building universal on Leopard, although it'd still be advisable  
finding out if there are any major losses to doing, as Eric questioned  
originally.

	Going forward, what I'd really like to see is an abstraction of these  
settings into macports.conf. Anders tells me there are three important  
settings to look after:

1) sysroot, the SDK employed;
2) MACOSX_DEPLOYMENT_TARGET: what's the state of these at the moment,  
what are we using?
3) archs, 32 Vs. 64 bits: according to Anders' last change, we're back  
at building only 32 bits for both Intel and PowerPC, which is what I  
believe we should stick to until we figure out a transparent migration  
path to 4-way built binaries.

	We should ship 1.6.1 with the most sensible possible set of defaults  
for all these three settings and then work toward abstracting them  
into macports.conf keys.

>
>
> As it is now, a port built +universal on Leopard is different from a  
> port built +universal on Tiger, and that tastes wrong.


	Different how? Sorry if it's been discussed already and I'm just not  
keeping up with this topic.

	The way I understand it, there are two approaches:

*) 1st: build universal but solely for Tiger, then I'd expect the  
binary to work either on Intel or PowerPC, but in both cases on Tiger  
only; build universal but solely for Leopard, then I'd expect the same  
thing from the binary, but on Leopard in this case.
*) 2nd: we could certainly switch the SDK to 10.4 on Leopard, but then  
a binary built in this environment would work on any combination of  
Tiger and/or Leopard with PowerPC and/or Intel; on the other hand, a  
binary built universal on Tiger would not enjoy the same diversity,  
and this does constitute different "universal realities" (long live  
String Theory!), depending on the production environment.

	Maybe I'm universal impaired, but I don't see a clear winner between  
either one. What makes more sense and why?

	Or am I just smoking crack with my understanding of the problem and  
not get one bit the "As it is now, a port built +universal on Leopard  
is different from a port built +universal on Tiger" assertion?


> But maybe that's just the way it has to be? What will happen when we  
> get binary packages of ports? Will we have to have separate binaries  
> for each cat?


	I guess this exercise helps us prepare for the case scenario of not  
finding enough support to get all the needed hardware when the time  
comes ;-) PowerPC will eventually fade away, but the choice of  
multiple cats will always be with us.


> I guess maybe we will. We already have the problem that ports built  
> +universal on Tiger won't be usable on Panther, so we'd need  
> separate binaries for Panther anyway.


	Yes, certainly, but that's the boundary where you draw the line and  
start cutting the fat. If not, they we'd have to think about a way to  
build "universal" binaries on Panther that would work on Jaguar,  
and... uuuggghhh, don't even want to think about it!!!!

	Regards,...


-jmpp



More information about the macports-dev mailing list