Juce 1.51 build fails on ppc64 (Mac)


#1

I can’t seem to get Juce 1.51 to build for the ppc64 architecture on Mac. It fails with following error during compile stage:

juce_amalgamated.cpp: In static member function ‘static int juce::SystemStats::getNumCpus()’:
juce_amalgamated.cpp:237000: warning: ‘NSProcessInfo’ may not respond to '-activeProcessorCount’
juce_amalgamated.cpp:237000: warning: (Messages without a matching method signature
juce_amalgamated.cpp:237000: warning: will be assumed to return ‘id’ and accept
juce_amalgamated.cpp:237000: warning: ‘…’ as arguments.)
juce_amalgamated.cpp:237000: error: cast from ‘objc_object*’ to ‘int’ loses precision

I build on OS X 10.5.8, which has all the necessary ppc64 dependencies. Other architectures build without problems.

Any ideas? Thanks a lot in advance.


#2

I’ve fixed the build by changing line 236999 from

#if JUCE_IPHONE || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5)

to

#if (JUCE_IPHONE || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5)) && !defined(ppc64)

.

I would expect a stable release to build on all supported platforms without modifications though. Is ppc64 officially supported?


#3

Whenever I do a ppc build, it’s for legacy apps, so I always target 10.4 - in which case your change wouldn’t be needed, I guess…


#4

I guess that makes sense to some extent. Might be good to add that little fix to nonetheless. It’s all needed to build for ppc64 with 10.5 as target. Builds perfectly now.


#5

It doesn’t really make much sense though - the NSProcessInfo call that you’re removing is just a cocoa call, which is available on ppc64 as long as you’re building for 10.5 or later…?


#6

Indeed very strange. Apple is dropping ppc64 all over the place though. You can’t even build for ppc64 on Snow Leopard any longer.