> > More or less, although I'd recommend either setting CC=clang in project > makefiles or on the command line, rather than in config.make.
Thanks David, I've ended up creating a VM with a clean install of ubuntu (plus the deps for GNUstep) in it, and am testing it there, things are going much better. I'm oh so close now... gnustep-base builds cleanly, and installs, but building my target still trips over in two interesting ways: Firstly, clang seems to be finiky about it's argument order when linking, adding BDS_LDFLAGS to my GNUmakefile adds the arguments near the beginning of the command, and for some reason this generates link errors. Because of this, I've copied and pasted the command that make runs from make messages=yes, and moved my link options to near the end. This kills off a bunch of errors linking against libcrypto. My question regarding this part, is, is it possible to get the GNUstep build system to stick my link options in near the end, or will I be forever typing my own link commands? Secondly, blocks still aren't working quite right. Here's my link command and it's output: ta...@tatd2-laptop:~/Documents/BattleDungeon$ clang -rdynamic -shared-libgcc -fexceptions -fgnu-runtime -o obj/BDS ./obj/BDS.obj/serverMain.m.o ./obj/BDS.obj/Classes/Database/BDDatabase.m.o ./obj/BDS.obj/Classes/Database/Database.m.o ./obj/BDS.obj/Classes/Database/DBQuery.m.o ./obj/BDS.obj/Classes/CocoaExtensions/RectValue.m.o ./obj/BDS.obj/Classes/CocoaExtensions/NSArrayWithMap.m.o ./obj/BDS.obj/Classes/CocoaExtensions/PointValue.m.o ./obj/BDS.obj/Classes/CocoaExtensions/NSSetWithSearch.m.o ./obj/BDS.obj/Classes/CocoaExtensions/RGBColour.m.o ./obj/BDS.obj/Classes/CocoaExtensions/GeometryStructures.m.o ./obj/BDS.obj/Classes/CocoaExtensions/IntPointValue.m.o ./obj/BDS.obj/Classes/Network/StringNetworking.m.o ./obj/BDS.obj/Classes/Network/BDServerSession.m.o ./obj/BDS.obj/Classes/Network/BDRequest.m.o ./obj/BDS.obj/Classes/Network/BDNetworkCoder.m.o ./obj/BDS.obj/Classes/Network/BDNetworkDecoder.m.o ./obj/BDS.obj/Classes/Server/BDConfig.m.o ./obj/BDS.obj/Classes/Server/BDServer.m.o ./obj/BDS.obj/Classes/Server/BDConnectionManager.m.o ./obj/BDS.obj/Classes/Server/BDConnection.m.o ./obj/BDS.obj/Classes/Utilities/CommonC.m.o ./obj/BDS.obj/Classes/Utilities/Pair.m.o ./obj/BDS.obj/Classes/Model/Immutable/Animation.m.o ./obj/BDS.obj/Classes/Model/Immutable/AnimationNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/AnimationSet.m.o ./obj/BDS.obj/Classes/Model/Immutable/ArbitrarySubTexture.m.o ./obj/BDS.obj/Classes/Model/Immutable/ArbitraryTextureAtlas.m.o ./obj/BDS.obj/Classes/Model/Immutable/AssignmentNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/Campaign.m.o ./obj/BDS.obj/Classes/Model/Immutable/Creature.m.o ./obj/BDS.obj/Classes/Model/Immutable/CreatureClass.m.o ./obj/BDS.obj/Classes/Model/Immutable/DelayNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/Effect.m.o ./obj/BDS.obj/Classes/Model/Immutable/EntryPointNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/Folder.m.o ./obj/BDS.obj/Classes/Model/Immutable/IdentifiedObject.m.o ./obj/BDS.obj/Classes/Model/Immutable/IfNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/Item.m.o ./obj/BDS.obj/Classes/Model/Immutable/ItemLevel.m.o ./obj/BDS.obj/Classes/Model/Immutable/Map.m.o ./obj/BDS.obj/Classes/Model/Immutable/MapObject.m.o ./obj/BDS.obj/Classes/Model/Immutable/ModifierNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/ModifyIconNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/NamedObject.m.o ./obj/BDS.obj/Classes/Model/Immutable/RunEffectNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/Script.m.o ./obj/BDS.obj/Classes/Model/Immutable/ScriptNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/Setup.m.o ./obj/BDS.obj/Classes/Model/Immutable/Spell.m.o ./obj/BDS.obj/Classes/Model/Immutable/SpellNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/StatementNode.m.o ./obj/BDS.obj/Classes/Model/Immutable/SubTexture.m.o ./obj/BDS.obj/Classes/Model/Immutable/TextureAtlas.m.o ./obj/BDS.obj/Classes/Model/Immutable/TiledSubTexture.m.o ./obj/BDS.obj/Classes/Model/Immutable/TileMap.m.o ./obj/BDS.obj/Classes/Model/Immutable/TriggerNode.m.o ./obj/BDS.obj/Classes/Model/Mutable/Game.m.o ./obj/BDS.obj/Classes/Model/Mutable/Side.m.o ./obj/BDS.obj/Classes/Model/Mutable/Player.m.o ./obj/BDS.obj/Classes/Model/Mutable/Soldier.m.o -L/usr/local/ssl/lib64 -lcrypto -L/usr/lib -lmysqlclient -L/home/tatd2/GNUstep/Library/Libraries -L/usr/GNUstep/Local/Library/Libraries -L/usr/GNUstep/System/Library/Libraries -lgnustep-base -lpthread -lobjc -lm ./obj/BDS.obj/Classes/Network/BDServerSession.m.o: In function `_i_BDServerSession__findExistingOrCreateGameMatchingStats_failureReason_': /home/tatd2/Documents/BattleDungeon/Classes/Network/BDServerSession.m:231: undefined reference to `_NSConcreteStackBlock' ./obj/BDS.obj/Classes/Model/Immutable/Folder.m.o:(.data.rel.ro+0x0): undefined reference to `_NSConcreteGlobalBlock' ./obj/BDS.obj/Classes/Model/Immutable/Script.m.o: In function `_i_Script__newNodePosition': /home/tatd2/Documents/BattleDungeon/Classes/Model/Immutable/Script.m:204: undefined reference to `_NSConcreteStackBlock' collect2: ld returned 1 exit status clang: error: linker command failed with exit code 1 (use -v to see invocation) You seemed to indicate that NSConcreteGlobalBlock and NSConcreteStackBlock should be hiding away in libgnustep-base, but that doesn't seem to be the case: ta...@tatd2-laptop:~/Documents/BattleDungeon$ nm /usr/GNUstep/Local/Library/Libraries/libgnustep-base.so | grep "Concrete.*Block" w _NSConcreteStackBlock Any help getting over this last hurdle would be much appreciated. Thanks Tom Davie _______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org http://lists.gnu.org/mailman/listinfo/gnustep-dev