On Sep 10, 2009, at 5:48 AM, Brian Barnes wrote: Rich Siegel wrote:
On 9/9/09 at 11:10 PM, email@hidden (Brian Barnes) wrote:
Apple guys/gals -- here's where the problem lays. It's the 10.4 SDK.
clang-llvm on 10.5, compiles without a problem, runs fine
clang-llvm on 10.4, crashes in OS routines (usually interface routines)
I'm pretty certain that 10.4 is not a supported deployment target for binaries built with clang, although I can't find mention as such in the 3.2 release notes.
Anybody at Apple want to verify this? It *mostly* works -- there's only a small subset of things that crash that I've detected -- and I'm not exactly sure what the differences would be between the 10.4/10.5 SDK that wouldn't allow this work (i.e., bevel buttons are still supported, carbon hasn't changed much in years, etc). My attempted targets are:
ppc = sdk 10.4, gcc 4.0 i386 = dsk 10.4, clang-llvm
I *suspect* the problem isn't in clang, but instead in llvm/10.4. If I can't use it with 10.4, that will be disappointing, but not the end of the world. Everything I've read I'd love to be able to move to clang/llvm, it's much faster (clang) and eliminates the old days of figuring out the best scheduling, compiler settings, etc (llvm).
Since clang/llvm is relatively new (compared to gcc) -- what's going to be the upgrade cycle on this? A nightly build like webkit might be nice (as I've encountered a number of bugs.) Again, if I have to wait for major releases, not a big deal, just wondering.
To the best of my recall and experience, the target compatibility of compilers and SDKs goes something like this:
gcc-4.0: target i386/ppc, sdk 10.4, 10.5, 10.6
gcc-4.2: target i386/ppc, sdk 10.4, 10.5, 10.6 -- see note 1
llvm-gcc-4.2 target i386, sdk 10.5, 10.6 -- see note 2
clang target i386, sdk 10.5, 10.6 -- see note 3
My compile refused to use gcc 4.2 against 10.4, this might be a mistake on my part, though it doesn't seem to be supported.
Rich is correct on both counts.
• gcc4.2, llvm-gcc4.2, and clang-llvm are not supported for use with the 10.4u SDK. Use gcc4.0. • This fact is not documented in the Release Notes, and the general statement in the Release Notes do imply that because development for 10.4 is generally supported, that it is assumed that all compilers can compile 10.4's headers and build for 10.4's runtime. This is not the case.
Chris |