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