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

IOhannes m zmoelnig zmoelnig at iem.at
Tue Dec 15 09:56:05 CET 2015


On 2015-12-13 23:16, katja wrote:
> iven 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.

?are you sure?

$ cc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
$ cat > testarch.c <<EOL
#include <stdio.h>
int main() {
#ifdef __i386__
  printf("i386\n");
#endif
#ifdef __x86_64__
  printf("x86_64\n");
#endif
  return 0;
}
EOL
$ make testarch CFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5"
$ ./testarch
x86_64
$ arch -i386 ./testarch
i386
$ arch -x86_64 ./testarch
x86_64
$

> For this reason I'm now thinking that single-architecture should be
> the default in a generic build system, and fat binary an option.

dunno.
i think that the default should be to just use the system-defaults
(don't tell the compiler which architecture it should build for).
this is driven by the experience with tehe template/Makefile: there are
a number of externals out there that don't build on recent OSX, because
the original template-Makefile would build for PowerPC and apple dropped
out-of-the-box support for ppc.

otoh. it's obviously of utmost importance that any thus-compiled
external loads correctly under a "default" Pd installation.

so for practical reasons it's probably best to use i386/x86_64 (and
don't enable PPC by default)

fgmadr
IOhannes

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20151215/1cd62a38/attachment.sig>


More information about the Pd-list mailing list