JuceAudioDemoAU on PPC

I found some issues with JuceAudioDemoAU example on PPC.

Working with the latest Juce version I tried to compile the example (changing first juce.xcconfig to 10.3 and later compatibility) and I got the error:

It shows in CAAtomicStack.h in

... #if !defined(__COREAUDIO_USE_FLAT_INCLUDES__) #include < libkern/OSAtomic.h> #else ...

So the first question is how to force the XCode to compile it for 10.3 and later OSX?

Next I switched the juce.xcconfig to OSX 10.4 and later and I compiled the example successfully. The files is signed as Universal Binary but it works only on Intel Macs. On PPC machines it seems to be unrecognizable by any host or auval command line tool (auval -a)

Any hint why?


Which version of XCode are you using, and which SDK? I can’t see why you’d have a problem with headers if your SDKs are up-to-date.

I use XCode 2.5 and I have both MacOSX10.3.9.sdk and MacOSX10.4u.sdk installed in /Developer/SDKs
Latest version of Juce from svn. The only things changed in Juce by me are the juce.xcconfig as I wrote earlier and disabling the QuickTime features in juce_Config.h

thanks for help

I checked it once again for sure.
After complete reinstall of XCode 2.5 and update the Juce I got the same issue when try to compile the JuceDemoAU for OSX 10.3 and later.

It’s a known issue with the coreAudio SDK of xcode 2.5


Thanks oristan for this tip - that’s why the compiled UB didn’t work at PPC correct.

But I also discovered why I couldn’t compile JuceDemoAU for OSX 10.3 and later having these strange errors about “libkern/OSAtomic.h”

When I looked at the JuceDemoAU project info I saw only i386 value in the Architectures line but when I clicked Edit I saw both the PowerPC and Intel checkboxes set. Must be some weird XCode behavior but I must click OK to see “ppc i386” or type “(inherited)" manually to this field. Even stranger is that I need to delete "(inherited)” value from SDKROOT_ppc on the bottom of settings list. Only then I can successfully compile JuceDemoAU. I know it sounds like magic but it’s deterministic like hell :wink:

Anyway thanks for help :slight_smile:

Is the problem similar to this?

Best regards,
Masanao Hayashi

I can confirm bld’s problem with XCode 2.5 and the juce trunk (rev.424)

if you add this to your build settings :

then you get a compile-time error saying it can’t find libkern/OSAtomic.h. This clearly for PPC only, so you get the error only if you build UBs.

Leave out the 10.3.9 sdk reference for ppc and it compiles fine.

Both suggestions by hayasi and otristran are useful but do not seem to solve this particular problem.

I’m not entirely sure what the effect would be of leaving out the 10.3.9 SDK reference. Does this mean the AU won’t run on on anything older than 10.4.x ? Who as a Panther mac to give this a try?

BTW, adding the exact same 10.3.9 SDK reference to non-AU juce projects works fine!

Argh! I’m getting officially mad now: the Juce plugin demo compiles fine for ppc with target 10.3.9. My own plug compiles as well, but only in Debug mode. In Release mode I get the error about OSAtomic.h not being found. I’ve checked all project settings for hours now and I can’t find any difference. Any idea what I might have overlooked?

did you try ostristan’s suggestion yet?

[quote=“otristan”]It’s a known issue with the coreAudio SDK of xcode 2.5


don’t have my mac fired up right now, but I remember vaguely having added this manual fix at some point.

But then again, I think I ultimately went for 10.4.x exclusively in the end. That surely did compile

Thanks, but that’s unfortunately not the issue…

Okay, I just realized there are TWO project settings, one for the plugin and one for the target (can’t say I really understand this, but anyway). When I remove the SDK10.3.9 reference in both of them it seems to work. I’m just hoping that setting MACOSX_DEPLOYMENT_TARGET_ppc to 10.3 is sufficient to make it work on a 10.3 ppc…