On Sun, Dec 13, 2015 at 6:56 PM, Miller Puckette msp@ucsd.edu wrote:
At the moment, my best idea is to have "fat" externs (i386 and ia64) that can be loaded by either 32 or 64-bit versions of Pd. But I'd like to be able to do two other things I don't know how to do yet:
Have a single version of Pd that can run in 32 or 64 bits
Currently Makefile.pdlibbuilder (which isn't used much yet) tries to build fat binaries by default. OSX 10.5 with Xcode 3.1 can build the fattest (ppc and Intel, 32 and 64 bit). Later configurations can build for Intel 32 and 64 bit. In that case the following flags must be given to both compiler and linker:
-arch i386 -arch x86_64 -mmacosx-version-min=10.5
One thing I noticed when building fat binaries: gcc doesn't define __i386__ or __x86_64__ which we use to conditionally compile bithacks. For this reason I'm now thinking that single-architecture should be the default in a generic build system, and fat binary an option.
simultaneously enable 64 bit versions with 32 or 64 bit floating samples
The second thing would complicate loading of externs since I don't know how to make a fat binary with two different alternative code sections that are chosen according to the directions of the loading program - at the moment loading is on the basis of architcture (and which code segment to load os chosen automatically by the OS on that basis).
IOhannes has suggested ideas about loading 'phat' (fat precision) binaries in a pd-dev thread starting here:
http://lists.puredata.info/pipermail/pd-dev/2015-02/020073.html (and further)
Katja
cheers Miller
On Sun, Dec 13, 2015 at 11:37:35AM +0100, katja wrote:
Thanks for your explanation. I checked the "real" programs in Pd-0.46-7-64bit/Contents/Resources/bin/pd, they are x86_64 indeed. Those in Pd-0.46-7/Contents/Resources/bin/pd are i386 and ppc.
Also I noticed the externals extension (for bonk~ etc.) is .d_fat in both cases. Will that be your default extension for OSX? Do you consider distributing Pd for OSX as 32 / 64 bit fat binary in the future? Or even ppc + i386 + x86_64 (which can be built conveniently on OSX 10.5)?
I'm trying to figure out what sort of binaries Makefile.pdlibbuider should best build by default on OSX, hence these questions. We need a strategy to maximize chances that distributed Pd's and externals are compatible.
cheers, Katja
On Sun, Dec 13, 2015 at 3:17 AM, Miller Puckette msp@ucsd.edu wrote:
The "GUI" program (Pd.../Contents/MacOS/Pd) is a copy of the wish shell, and is i386/ppc... but the "real" programs in Pd.../Contents/Resources/bin/pd seem to me to be x86_64 - if not I must have distributed the wrong file somehow.
cheers Miller
On Sat, Dec 12, 2015 at 10:16:56PM +0100, katja wrote:
Hello,
From Miller's site I downloaded "Pd version 0.46-7, 64 bits, compiled for Macintosh OSX 10.8 or later (4 Megabytes)". Checking for target architecture with command 'file', it is reported to be a fat binary for i386 and ppc. Though the application will load all right, it doesn't seem to be the build that is advertised.
Katja
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list