[PD] fat binaries or not, on OSX (was: 'Pd 64 bits' for OSX is i386 + ppc)

katja katjavetter at gmail.com
Sun Dec 13 23:16:52 CET 2015


On Sun, Dec 13, 2015 at 6:56 PM, Miller Puckette <msp at 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 at 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 at lists.iem.at mailing list
>> >> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>>
>> _______________________________________________
>> Pd-list at lists.iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list



More information about the Pd-list mailing list