Bug 1050

Summary: 32 bit compiling on macosx is broken
Product: [JogAmp] General Reporter: Matthias <haenel>
Component: buildsAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: blocker    
Priority: ---    
Version: 2.3.0   
Hardware: pc_x86_32   
OS: macosx   
Type: --- SCM Refs:
Workaround: ---
Attachments: osx-extract-sdk-xcode41.txt

Description Matthias 2014-08-22 11:58:17 CEST
32 bit compiling is not available on newer MacOSX SDK versions. Here you should use an older SDK at leat MACOSX10.6.sdk

CFLags would be -isysroot $(DEVELOPERDIR)/SDKs/MacOSX10.6sdk and LFLags should be -Wl,-syslibroot,$(DEVELOPERDIR)/SDKs/MacOSX10.6.sdk
Comment 1 Sven Gothel 2014-09-08 05:27:52 CEST
ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

MacOSX10.8.sdk  MacOSX10.9.sdk

So I have no SDK 10.6 installed :-/

Further we would need to inject this into our build system.

Q: Are there still 32bit OSX versions out there ?
Q: Are there even Java6 versions available ?
Comment 2 Matthias 2014-09-08 09:25:37 CEST
Yes, you would need to add the 10.6 SDK manually. Here you can find it: https://github.com/phracker/MacOSX-SDKs/tree/master/

Q's:
1. Should there are tons of 32 bit software out there. Actually, the major reason is the lag of Quicktime for 64 bit so they are still using legacy mode. We've ported to AVFoundation but I am sure that's true for all applications

2. Apple still provides Java6. From our point of view, Java7/8 is not usable until now since there are a lot of performance issues especially in terms of graphics.
Comment 3 Sven Gothel 2014-09-21 02:21:28 CEST
Thank you for the information.

(In reply to comment #2)
> Yes, you would need to add the 10.6 SDK manually. Here you can find it:
> https://github.com/phracker/MacOSX-SDKs/tree/master/


I have not seen a legal / license statement 
regarding above MacOSX-SDK git repo - where can I find such a statement?

Also, I don't know whether it is safe to download 
to be linked libs from an unknown source (blobs) ..

> 
> Q's:
> 1. Should there are tons of 32 bit software out there. Actually, the major
> reason is the lag of Quicktime for 64 bit so they are still using legacy
> mode. We've ported to AVFoundation but I am sure that's true for all
> applications

OK.

> 
> 2. Apple still provides Java6. From our point of view, Java7/8 is not usable
> until now since there are a lot of performance issues especially in terms of
> graphics.

Where can I find java6 for OSX ?
Seems like I need that as well ..

If all is provided in a legal and 'safe' way
I will re-enable the support.
Comment 4 Matthias 2014-09-22 10:10:35 CEST
you can download the Java devloper package from the apple dev pages:
https://developer.apple.com/downloads/index.action

You can download XCode 4.0.2 from the developer pages as well. There you should find the MacOSX 10.6 sdk.
Comment 5 Sven Gothel 2014-10-01 20:36:42 CEST
Created attachment 653 [details]
osx-extract-sdk-xcode41.txt
Comment 6 Sven Gothel 2014-10-01 20:41:18 CEST
(In reply to comment #5)
> Created attachment 653 [details]
> osx-extract-sdk-xcode41.txt

Ok, I did my little adventure
  - downloading xcode 4.1 and extract the SDK 10.6 (see attachment)

  - downloading java6 (see note in attachment)

Now I figured, w/ xcode 6.0.1 using java6 (which provides 32bit binaries)
we already can build 32bit binaries.
Hence xcode 4.1 is not needed.

However, if using a different SDK w/ xcode.clang compilation,
one would only need to set SDKROOT, e.g.:
  export SDKROOT=macosx10.6
which is being picked up by xcrun, 
which we utilize via xcode.clang (default on OSX now). 

I will re-enable Java6 node and use the binaries (32- and 64bit)
of this machine w/o any changes to our source repo.
Comment 7 Sven Gothel 2014-10-01 20:43:27 CEST
Moved to General_Core/builds, 
since only a change on the build machine is required.
Comment 8 Sven Gothel 2014-10-01 21:15:45 CEST
(In reply to comment #7)
> Moved to General_Core/builds, 
> since only a change on the build machine is required.

After installing Java6 (java_for_os_x_2013005_dp__11m4609.dmg)
the Java6 default location was broken.

I had to fix this manually:

cd /System/Library/Frameworks/JavaVM.framework/
rm CurrentJDK ; ln -s /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents CurrentJDK
Comment 9 Sven Gothel 2014-10-01 23:44:33 CEST
OSX machine is set