I have the latest Mac Libs package (I think), bison 2.5 from MacPorts, XCode 2.5, Client Debug builds work fine. Building from 0.2.8 also fully works. The problems start with the Client Release build on trunk, I get linker errors (massively snipped, similar lines with just different symbols/libraries follow):
Code: Select all
Ld "/Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS/build/Armagetron Advanced.build/Release/Armagetron Advanced.build/Objects-normal/i386/Armagetron Advanced" normal i386
cd /Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS
/Developer/usr/bin/g++-4.0 -o /Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS/build/Armagetron\ Advanced.build/Release/Armagetron\ Advanced.build/Objects-normal/i386/Armagetron\ Advanced -L/Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS/build/Release -L/Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS/build/Release -L/Library/Frameworks/ArmagetronAdvanced/current -F/Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS/build/Release -F/Library/Frameworks/ArmagetronAdvanced/current -filelist /Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS/build/Armagetron\ Advanced.build/Release/Armagetron\ Advanced.build/Objects-normal/i386/Armagetron\ Advanced.LinkFileList -larmaprotobuf -framework Cocoa -framework OpenGL -lfreetype -lftgl -framework libpng -framework SDL_image -framework SDL -framework Growl-WithInstaller -framework ApplicationServices -framework CoreFoundation -lprotobuf -arch i386 -Wl,-s -Wl,-Y,1455 -lxml2 -lz -lpthread -liconv -lm
/Developer/usr/bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: warning /System/Library/Frameworks/Cocoa.framework/Cocoa cputype (18, architecture ppc) does not match cputype (7) for specified -arch flag: i386 (file not loaded)
/Developer/usr/bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: warning /System/Library/Frameworks/OpenGL.framework/OpenGL cputype (18, architecture ppc) does not match cputype (7) for specified -arch flag: i386 (file not loaded)
... (^that looks like the root of the problem right there)
/Developer/usr/bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: warning fat file: /usr/lib/libSystem.B.dylib does not contain an architecture that matches the specified -arch flag: i386 (file ignored)
/Developer/usr/bin/../libexec/gcc/i686-apple-darwin8/4.0.1/ld: Undefined symbols:
___keymgr_dwarf2_register_sections
__cthread_init_routine
_errno
_exit
_mach_init_routine
...
.objc_class_name_NSArray referenced from SDL expected to be defined in /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
.objc_class_name_NSAssertionHandler referenced from SDL expected to be defined in /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
.objc_class_name_NSAutoreleasePool referenced from SDL expected to be defined in /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
.objc_class_name_NSBitmapImageRep referenced from SDL expected to be defined in /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
.objc_class_name_NSCursor referenced from SDL expected to be defined in /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
...
/usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../crt1.o reference to undefined ___keymgr_dwarf2_register_sections
/usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../crt1.o reference to undefined __cthread_init_routine
/usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../crt1.o reference to undefined _errno
/usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../crt1.o reference to undefined _exit
/usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../crt1.o reference to undefined _mach_init_routine
/Developer/usr/bin/../lib/gcc/i686-apple-darwin8/4.0.1/crt3.o reference to undefined __keymgr_get_and_lock_processwide_ptr
/Developer/usr/bin/../lib/gcc/i686-apple-darwin8/4.0.1/crt3.o reference to undefined __keymgr_get_and_lock_processwide_ptr_2
/Developer/usr/bin/../lib/gcc/i686-apple-darwin8/4.0.1/crt3.o reference to undefined __keymgr_set_and_unlock_processwide_ptr
/Developer/usr/bin/../lib/gcc/i686-apple-darwin8/4.0.1/crt3.o reference to undefined _calloc
/Developer/usr/bin/../lib/gcc/i686-apple-darwin8/4.0.1/crt3.o reference to undefined _dlopen
/Developer/usr/bin/../lib/gcc/i686-apple-darwin8/4.0.1/crt3.o reference to undefined _dlsym
/Developer/usr/bin/../lib/gcc/i686-apple-darwin8/4.0.1/crt3.o reference to undefined _free
/Developer/usr/bin/../lib/gcc/i686-apple-darwin8/4.0.1/crt3.o reference to undefined _malloc
/Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS/build/Armagetron Advanced.build/Release/Armagetron Advanced.build/Objects-normal/i386/eAdvWall.o reference to undefined std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const
/Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS/build/Armagetron Advanced.build/Release/Armagetron Advanced.build/Objects-normal/i386/eAdvWall.o reference to undefined std::basic_ios<char, std::char_traits<char> >::eof() const
...
/Users/manuel/Desktop/Tron/Develop/trunk/armagetronad/MacOS/build/Armagetron Advanced.build/Release/Armagetron Advanced.build/Objects-normal/i386/tCommandLine.o reference to undefined ___gxx_personality_v0
more references to undefined symbols ...
collect2: ld returned 1 exit status
Edit: The successful linker command line for 0.2.8 is
Code: Select all
/Developer/usr/bin/g++-4.0 -o /Users/manuel/Desktop/Tron/Develop/0.2.8/armagetronad/MacOS/build/Armagetron\ Advanced.build/Release/Armagetron\ Advanced.build/Objects-normal/i386/Armagetron\ Advanced -L/Users/manuel/Desktop/Tron/Develop/0.2.8/armagetronad/MacOS/build/Release -L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib -L/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks/ArmagetronAdvanced/current -F/Users/manuel/Desktop/Tron/Develop/0.2.8/armagetronad/MacOS/build/Release -F/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks/ArmagetronAdvanced/current -filelist /Users/manuel/Desktop/Tron/Develop/0.2.8/armagetronad/MacOS/build/Armagetron\ Advanced.build/Release/Armagetron\ Advanced.build/Objects-normal/i386/Armagetron\ Advanced.LinkFileList -framework Cocoa -framework OpenGL -framework libpng -framework SDL_image -framework SDL -framework CoreServices -framework SDL_mixer -arch i386 -Wl,-Y,1455 -mmacosx-version-min=10.3 -framework\ SDL -framework\ SDL_image -framework\ SDL_mixer -lxml2 -lz -lpthread -liconv -lm -isysroot /Developer/SDKs/MacOSX10.4u.sdk
Edit2: and the lack is because of a customized, but empty, SDK path in the client release configuration. Removing that fixes the build. Of course, I can't check whether the i386 side of the resulting universal binary works; so is that path there on purpose?