digitalmars.D - compiling i386 on a ppc mac
- Moritz Warning (23/23) May 05 2008 I try to compile a program with gdc on a ppc mac:
- =?UTF-8?B?QW5kZXJzIEYgQmrDtnJrbHVuZA==?= (10/17) May 05 2008 gdc -o main main.d -arch i386 -fversion=Tango -fversion=Posix \
- Moritz Warning (5/8) May 05 2008 [..]
I try to compile a program with gdc on a ppc mac: gdc -o main main.d -arch i386 -fversion=Tango -fversion=Posix -L/SDKs/ MacOSX10.4u.sdk/usr/lib -L/SDKs/MacOSX10.4u.sdk/usr/lib/system -lgtango - lz -lssl But i get these errors on linking: /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: warning /usr/lib/ libcrypto.0.9.7.dylib cputype (18, architecture ppc) does not match cputype (7) for specified -arch flag: i386 (file not loaded) /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: warning fat file: /usr/lib/ system/libmathCommon.A.dylib does not contain an architecture that matches the specified -arch flag: i386 (file ignored) /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: Undefined symbols: _fegetround referenced from libSystem expected to be defined in /usr/lib/ system/libmathCommon.A.dylib The libraries in /usr/lib are indeed not for i386, but ppc only. But they are also in /SDKs/MacOSX10.4u.sdk/usr/lib for i386 (and ppc, universal binaries from xcode). Anyone knows how to convince gdc to look in the given include paths first for these files, too? It seems to work for other includes. I tried to specify them explicitly (e.g.: -L/SDKs/MacOSX10.4u.sdk/usr/lib/ libcrypto.0.9.7.dylib), but nothing changed. :(
May 05 2008
Moritz Warning wrote:The libraries in /usr/lib are indeed not for i386, but ppc only. But they are also in /SDKs/MacOSX10.4u.sdk/usr/lib for i386 (and ppc, universal binaries from xcode). Anyone knows how to convince gdc to look in the given include paths first for these files, too? It seems to work for other includes.gdc -o main main.d -arch i386 -fversion=Tango -fversion=Posix \ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -lgtango -lz -lssl As a one-time setup thing (and for convenience), you need to set up symbolic links for libgphobos.a and libgtango.a to the SDK dir too: sudo ln -s /usr/lib/libgphobos.a /Developer/SDKs/MacOSX10.4u.sdk/usr/lib sudo ln -s /usr/lib/libgtango.a /Developer/SDKs/MacOSX10.4u.sdk/usr/lib --anders PS. You can also build universal binaries, by using "-arch ppc -arch i386"
May 05 2008
On Mon, 05 May 2008 21:07:09 +0200, Anders F Björklund wrote: [..]gdc -o main main.d -arch i386 -fversion=Tango -fversion=Posix \ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -lgtango -lz -lssl[..] "-isysroot /Developer/SDKs/MacOSX10.4u.sdk" did it. Thank you!
May 05 2008