Re: Universal binary with x86_64 for 10.6 only
Re: Universal binary with x86_64 for 10.6 only
- Subject: Re: Universal binary with x86_64 for 10.6 only
- From: BJ Homer <email@hidden>
- Date: Wed, 20 Jan 2010 20:50:15 -0700
Is there some reason why a 64-bit version shouldn't run under Leopard?
In theory, no. But a Leopard user encountered a crash that only happened when he ran it in 64-bit mode. Crash logs didn't make any sense. We spent quite a while on it, and finally had him try it in 32-bit mode, and the crash went away. It seems like a bug in the 64-bit frameworks on Leopard, but I'm not convinced. But regardless, since the primary motivation for building 64-bit was Snow Leopard, I figured we could just leave Leopard 32-bit; it works just fine.
> I've found the LSMinimumSystemVersionByArchitecture key that can be put into
> an app bundle's Info.plist, but this is a flat file. I tried embedding the
> Info.plist inside the flat binary, but it didn't seem to make a difference.
AIUI, that should work
I'll try it again; it's possible I did something wrong there. I'm not sure if directly launching a binary on the command line goes through Launch Services, though. I couldn't find any documentation about it, anyway.
> Am I doing something wrong? I had thought that when running a universal
> binary, it would look through all the binaries and find the best choice that
> it can run. Since x86_64 is linked against the 10.6 SDK, I had thought it
> would pass over that and use the 10.5 SDK. Is this incorrect?
This was true between 10.4 and 10.5, because more drastic changes were
made in the binary file format (i.e. an x86_64 binary built with a
10.4 deployment target actually had a different architecture than one
built for 1.05 or later). However, there is no such difference between
10.5 and 10.6 binaries.
Ah.
> Any ideas?
One possible idea, is to build your x86_64 slice with a 10.5
deployment target (so that it is runnable on 10.5 and will launch
without crashing), but check at runtime for the OS version. If the OS
version is less than 10.6, re-exec yourself as 32-bit.
That is a possibility. More invasive than I'd like, but a possibility. Thanks for the idea.
-BJ
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden