From pauljohn at ku.edu Thu Jan 3 15:53:08 2013 From: pauljohn at ku.edu (Paul Johnson) Date: Thu, 3 Jan 2013 14:53:08 -0600 Subject: [Swarm-Support] Debian multi-arch framework makes me wonder about Java Swarm Message-ID: <50E5EFB4.6070306@ku.edu> Dear Everybody: Today I'm back to the problem that Java Swarm can't compile on 64 bit architectures. While trying to compile Swarm on 64 bit systems, we run into the problem that Java Swarm can't be built, and so there's a curious walkabout of finding a 32 bit system, building Swarm on there, and then installing those packages on the 64 bit system. Debian linux packaging for Swarm has to change now because Debian is changing from a weird partial hybrid of 32 and 64 bit to a completely weird, comprehensive, frustrating "multiarch" combination of 32 and 64 bit which requires the packaging to be redone. The installed locations of libraries will change from /usr/lib (for 64 bit librares) /usr/lib32 (for 32 bit libraries) to /usr/lib/i386-linux-gnu/ /usr/lib/x86_64-linux-gnu That's a little confusing because a few months ago, I thought they said they were dropping /usr/lib and just putting everything in /lib. Oh, well. So the packaging changes, and program compilation has to change, and include statements have to change. It looks like a big hassle. I'm thinking of forgetting the Java part altogether, and then the Obj-C part can run in 64 bit, at least if you still have access to gcc-4.6. We still have the bad problem that gcc-4.7 has an incompatible runtime, but so far as I can tell, there are not many humans alive right now who understand the Swarm source code well enough to give us a working code base. So, are there people using Java Swarm now? Speak up. By the way, what in the heck is up with this: http://swarm.org/index.php/Jheatbugs-3.0.txt. I can't download a tarball with Jheatbugs-3.0, but I have to download a text file (from where?) and run some perl to extract the code files? Huh? pj -- Paul E. Johnson email: pauljohn at ku.edu http://pj.freefaculty.org Assoc. Director Professor, Political Science Ctr for Research Methods & Data Analysis 1541 Lilac Lane, Rm 504 1425 Jayhawk Blvd. University of Kansas Watson Library, Rm. 470 Lawrence, Kansas 66045-3129 Lawrence, Kansas 66045-7555 Ph: (785) 864-3523 Ph: (785) 864-3353 From pauljohn at ku.edu Fri Jan 4 01:00:30 2013 From: pauljohn at ku.edu (Paul Johnson) Date: Fri, 4 Jan 2013 00:00:30 -0600 Subject: [Swarm-Support] Possibly good news: gcc 4.7 workaround via vestigial gcc-4.6 includes and runtime Message-ID: <50E66FFE.2060405@ku.edu> I'm on a Debian system with gcc-4.7 as well as 4.6. I accidentally compiled Swarm with gcc-4.7, and then ran into that problem that apps wont compile. This is the same problem I hit last summer. Consider Heatbugs: $ make gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm Heatbug.m In file included from /usr/include/swarm/objectbase.h:34:0, from /usr/include/swarm/space.h:37, from Heatbug.h:8, from Heatbug.m:13: /usr/include/swarm/defobj.h:1171:1: error: unknown type name ?retval_t? /usr/include/swarm/defobj.h:1171:1: error: unknown type name ?retval_t? In file included from /usr/include/swarm/objectbase.h:34:0, from /usr/include/swarm/space.h:37, from Heatbug.h:8, from Heatbug.m:13: /usr/include/swarm/defobj.h:1469:1: error: unknown type name ?FILE? /usr/include/swarm/defobj.h:1471:1: error: unknown type name ?FILE? In file included from /usr/include/swarm/activity.h:40:0, from /usr/include/swarm/objectbase.h:35, from /usr/include/swarm/space.h:37, from Heatbug.h:8, from Heatbug.m:13: /usr/include/swarm/collections.h:981:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:982:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:985:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:1054:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:1057:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:1059:1: error: unknown type name ?FILE? In file included from /usr/include/swarm/defobj/Customize.h:26:0, from /usr/include/swarm/defobj/Create.h:26, from /usr/include/swarm/objectbase/SwarmObject.h:23, from /usr/include/swarm/space/Discrete2d.h:27, from /usr/include/swarm/space/DblBuffer2d.h:23, from /usr/include/swarm/space/Ca2d.h:23, from /usr/include/swarm/space/Diffuse2d.h:23, from HeatSpace.h:10, from Heatbug.h:10, from Heatbug.m:13: /usr/include/swarm/defobj/DefClass.h:27:26: fatal error: objc/objc-api.h: No such file or directory compilation terminated. make: *** [Heatbug.o] Error 1 pauljohn at pjlap-124:heatbugs$ That is horrible, it made us think we were doomed. But I still have gcc-4.6 around. Watch my environment magic. Why this works, well, I have no idea. But I'm glad it does :) $ export EXTRAOBJCFLAGS=-I/usr/lib/gcc/x86_64-linux-gnu/4.6/include $ make gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm Heatbug.m gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm HeatSpace.m gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm main.m gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm HeatbugModelSwarm.m HeatbugModelSwarm.m: In function ?+[HeatbugModelSwarm createBegin:]?: HeatbugModelSwarm.m:99:21: warning: @interface of class ?CustomProbeMap? not found [enabled by default] HeatbugModelSwarm.m: In function ?-[HeatbugModelSwarm buildObjects]?: HeatbugModelSwarm.m:140:3: warning: @interface of class ?Grid2d? not found [enabled by default] gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm HeatbugObserverSwarm.m HeatbugObserverSwarm.m: In function ?+[HeatbugObserverSwarm createBegin:]?: HeatbugObserverSwarm.m:37:30: warning: @interface of class ?CustomProbeMap? not found [enabled by default] HeatbugObserverSwarm.m: In function ?-[HeatbugObserverSwarm buildObjects]?: HeatbugObserverSwarm.m:112:3: warning: @interface of class ?Colormap? not found [enabled by default] HeatbugObserverSwarm.m:133:3: warning: @interface of class ?ZoomRaster? not found [enabled by default] HeatbugObserverSwarm.m:152:21: warning: @interface of class ?Value2dDisplay? not found [enabled by default] HeatbugObserverSwarm.m:163:22: warning: @interface of class ?Object2dDisplay? not found [enabled by default] HeatbugObserverSwarm.m:180:14: warning: @interface of class ?EZGraph? not found [enabled by default] gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm HeatbugBatchSwarm.m /bin/sh /usr/bin/libtool-swarm --mode link gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -L/usr/lib/x86_64-linux-gnu/swarm -rpath /usr/lib/x86_64-linux-gnu/swarm -o heatbugs Heatbug.o HeatSpace.o main.o HeatbugModelSwarm.o HeatbugObserverSwarm.o HeatbugBatchSwarm.o -lswarm libtool-swarm: link: gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -o heatbugs Heatbug.o HeatSpace.o main.o HeatbugModelSwarm.o HeatbugObserverSwarm.o HeatbugBatchSwarm.o -L/usr/lib/x86_64-linux-gnu/swarm /usr/lib/x86_64-linux-gnu/swarm/libswarm.so -Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/swarm -Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/swarm pauljohn at pjlap-124:heatbugs$ After that, heatbugs runs fine. I've found the same happiness with the Artificial Stock Market. These extra warnings you see in the compiler output are 1) probably harmless but 2) very easy to fix. We just add one import statement to silence each warning. Example: HeatbugModelSwarm.m:140:3: warning: @interface of class ?Grid2d? not found [enabled by default] The fix is to add a declaration. Where we currently have #import "HeatbugModelSwarm.h" #import #import add explicitly for Grid2d.h: #import "HeatbugModelSwarm.h" #import #import #import The same is done to silence all those warnings, eg, for EZGraph, to this: #import add this as well #import On Debian systems, it appears it will always be possible to keep the old gcc-4.6 includes and runtime in addition to 4.7. I don't know how to package this so that 1) it checks that the gcc-4.6 stuff is available and 2) the EXTRAOBJCFLAGS line is properly included in Swarm's Makefile.common, but those details seem like little challenges to me now that I see a workaround for the gcc 4.7 problem. I hope Fedora leaves some door open for multiple gcc to exist at the same time. It always did in the past, i seem to recall. I'm going to spend some time following up on Scott's advice from last June about revising Swarm to tolerate gcc 4.7. He said "Porting Swarm to Mac required me to write an objc abstraction layer, during that process Apple came out with ObjC V2 so I naturally wrote the abstraction layer to match Apple's API. If you look at the file swarm-objc-apple2.h in src/defobj, you will see that all of the Swarm objc functions are just #define'd to the Apple objc functions. The same thing can be done for GNU objc by creating a swarm-objc-gnu2.h then have it be included from swarm-objc-api.h..." While it is still intimidating to go into the Swarm source code, it is a hell of a lot faster now to compile the whole thing and find out what works. pj -- Paul E. Johnson email: pauljohn at ku.edu http://pj.freefaculty.org Assoc. Director Professor, Political Science Ctr for Research Methods & Data Analysis 1541 Lilac Lane, Rm 504 1425 Jayhawk Blvd. University of Kansas Watson Library, Rm. 470 Lawrence, Kansas 66045-3129 Lawrence, Kansas 66045-7555 Ph: (785) 864-3523 Ph: (785) 864-3353 From Steve at LangRailsback.com Sun Jan 6 13:37:43 2013 From: Steve at LangRailsback.com (Steve Railsback) Date: Sun, 06 Jan 2013 10:37:43 -0800 Subject: [Swarm-Support] avcall problem in Ubuntu install Message-ID: <50E9C477.90206@LangRailsback.com> Hi- I am trying to install Swarm from source in Ubuntu 12.04, the last version that uses gcc 4.6 by default. I seem to have installed all the dependencies (Tk, Tcl, BLT, gperf, Emacs, hdf5, xpm, autoconf, automake, libtool...) using Ubuntu's standard software center. And I got through the autogen and configure processes. But "make" fails because it can't find avcall. The error is: ln: accessing 'avcall-x86_64.lo': No such file or directory. and in fact there is no such file. I installed avcall by installing something called libffcall1-dev, which includes a version of avcall but apparently not the one the makefile is looking for. Any suggestions? Thanks, Steve -- Steve Railsback Lang Railsback & Associates Arcata, California www.LangRailsback.com www.railsback-grimm-abm-book.com From pauljohn at ku.edu Thu Jan 10 15:33:44 2013 From: pauljohn at ku.edu (Paul Johnson) Date: Thu, 10 Jan 2013 14:33:44 -0600 Subject: [Swarm-Support] Fwd: avcall problem in Ubuntu install In-Reply-To: <8893819b309d4ece8796a330794c3ab5@EXCH10-HUB-01.home.ku.edu> References: <50E9C477.90206@LangRailsback.com> <8893819b309d4ece8796a330794c3ab5@EXCH10-HUB-01.home.ku.edu> Message-ID: <50EF25A8.90004@ku.edu> Sorry to top post, but I'm just trying to keep this clear because our emails to each other have been flying in various directions. Steve: You are building Swarm from SVN? If so, give up for now. I don't think Swarm SVN compiles on Linux at the moment. I'm checking with Scott Christley about it. We will get to the bottom of it. I do not think it is worthwhile trying to update Swarm for gcc-4.7 right now because Swarm (from SVN) does not even compile with gcc-4.6 on Debian Linux. Swarm-2.4.1 can be made to work, however. Certainly it can be made to work on 32 bit systems, and if you cut out the Java part, I think it can work on 64 bits. If you have access to 32 bit Ubuntu, you can build swarm there,then install on your amd64 bit system. You can't build on the 64 bit system because it will not have all of the 32 bit dependencies. See below if you are 64 bit only. If you have access to a 32 bit system. The DEB build process would go like this. Suppose I were trying to build blt. First. get the blt I provide here: http://pj.freefaculty.org/Swarm/Swarm-Packages/Ubuntu/10.10/i386/blt/blt_2.4z.orig.tar.gz Ungzip this. http://pj.freefaculty.org/Swarm/Swarm-Packages/Ubuntu/10.10/i386/blt/blt_2.4z-5.diff.gz This has the debian packaging material and also the patch swarm requires. (the patch that the Fedora guys created, the one that Debian guys have been ignoring for several years). Unzipping creates a patch file. Apply that in the source directory. Then inside blt directory, run the debian package build command $ dpkg-buildpackage -rfakeroot It is peculiar, but i can't rebuild that now on my system because I installed a bunch of testing stuff that is not compatible. I'll figure out what happened later. Install the result. Then get the Swarm code and packaging from here: http://pj.freefaculty.org/Swarm/Swarm-Packages/Ubuntu/10.10/i386/swarm/ Untar this: http://pj.freefaculty.org/Swarm/Swarm-Packages/Ubuntu/10.10/i386/swarm/swarm_2.4.1.orig.tar.gz Here's the packaging stuff http://pj.freefaculty.org/Swarm/Swarm-Packages/Ubuntu/10.10/i386/swarm/swarm_2.4.1-1.diff.gz run dpkg-buildpackage, see what happens. Please note these are built on i386 format because that is the only arch that allows Java Swarm. If you are on 64 bit only, you are screwed if you want to build Java Swarm. I've been through this recently on Debian Squeeze/Wheezy 64 bit. Cut out the Java swarm part. http://pj.freefaculty.org/Swarm/Swarm-Packages/Debian/squeeze/swarm-multiarch-try1/ Those have changes beyond removing Java Swarm. I has some multilib adjustments. I uploaded the whole build folder there too (swarm-2.4.1) and you can run dpkg-buildroot in there for your system. Now, if you are on a system that has gcc-4.7 and gcc-4.6 both installed, running Swarm requires one environment variable. I sent this message to support at swarm.org last week, but I don't think it went out: 2013-01-03 Dear swarm supporters: I'm on a Debian system with gcc-4.7 as well as 4.6. I accidentally compiled Swarm with gcc-4.7, and then ran into that problem that apps wont compile. This is the same problem I hit last summer. Consider Heatbugs: $ make gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm Heatbug.m In file included from /usr/include/swarm/objectbase.h:34:0, from /usr/include/swarm/space.h:37, from Heatbug.h:8, from Heatbug.m:13: /usr/include/swarm/defobj.h:1171:1: error: unknown type name ?retval_t? /usr/include/swarm/defobj.h:1171:1: error: unknown type name ?retval_t? In file included from /usr/include/swarm/objectbase.h:34:0, from /usr/include/swarm/space.h:37, from Heatbug.h:8, from Heatbug.m:13: /usr/include/swarm/defobj.h:1469:1: error: unknown type name ?FILE? /usr/include/swarm/defobj.h:1471:1: error: unknown type name ?FILE? In file included from /usr/include/swarm/activity.h:40:0, from /usr/include/swarm/objectbase.h:35, from /usr/include/swarm/space.h:37, from Heatbug.h:8, from Heatbug.m:13: /usr/include/swarm/collections.h:981:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:982:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:985:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:1054:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:1057:1: error: unknown type name ?FILE? /usr/include/swarm/collections.h:1059:1: error: unknown type name ?FILE? In file included from /usr/include/swarm/defobj/Customize.h:26:0, from /usr/include/swarm/defobj/Create.h:26, from /usr/include/swarm/objectbase/SwarmObject.h:23, from /usr/include/swarm/space/Discrete2d.h:27, from /usr/include/swarm/space/DblBuffer2d.h:23, from /usr/include/swarm/space/Ca2d.h:23, from /usr/include/swarm/space/Diffuse2d.h:23, from HeatSpace.h:10, from Heatbug.h:10, from Heatbug.m:13: /usr/include/swarm/defobj/DefClass.h:27:26: fatal error: objc/objc-api.h: No such file or directory compilation terminated. make: *** [Heatbug.o] Error 1 pauljohn at pjlap-124:heatbugs$ That is horrible, it made us think we were doomed. But I still have gcc-4.6 around. Watch my environment magic. Why this works, well, I have no idea. But I'm glad it does $ export EXTRAOBJCFLAGS=-I/usr/lib/gcc/x86_64-linux-gnu/4.6/include $ make gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm Heatbug.m gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm HeatSpace.m gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm main.m gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm HeatbugModelSwarm.m HeatbugModelSwarm.m: In function ?+[HeatbugModelSwarm createBegin:]?: HeatbugModelSwarm.m:99:21: warning: @interface of class ?CustomProbeMap? not found [enabled by default] HeatbugModelSwarm.m: In function ?-[HeatbugModelSwarm buildObjects]?: HeatbugModelSwarm.m:140:3: warning: @interface of class ?Grid2d? not found [enabled by default] gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm HeatbugObserverSwarm.m HeatbugObserverSwarm.m: In function ?+[HeatbugObserverSwarm createBegin:]?: HeatbugObserverSwarm.m:37:30: warning: @interface of class ?CustomProbeMap? not found [enabled by default] HeatbugObserverSwarm.m: In function ?-[HeatbugObserverSwarm buildObjects]?: HeatbugObserverSwarm.m:112:3: warning: @interface of class ?Colormap? not found [enabled by default] HeatbugObserverSwarm.m:133:3: warning: @interface of class ?ZoomRaster? not found [enabled by default] HeatbugObserverSwarm.m:152:21: warning: @interface of class ?Value2dDisplay? not found [enabled by default] HeatbugObserverSwarm.m:163:22: warning: @interface of class ?Object2dDisplay? not found [enabled by default] HeatbugObserverSwarm.m:180:14: warning: @interface of class ?EZGraph? not found [enabled by default] gcc -c -g -O2 -fgnu-runtime -fno-strict-aliasing -Wall -Wno-import -Wno-protocol -Wno-long-long -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DAPPNAME=heatbugs -DAPPVERSION=2.1.1 -DBUGADDRESS=bug-swarm at swarm.org -I/usr/include/swarm HeatbugBatchSwarm.m /bin/sh /usr/bin/libtool-swarm --mode link gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -L/usr/lib/x86_64-linux-gnu/swarm -rpath /usr/lib/x86_64-linux-gnu/swarm -o heatbugs Heatbug.o HeatSpace.o main.o HeatbugModelSwarm.o HeatbugObserverSwarm.o HeatbugBatchSwarm.o -lswarm libtool-swarm: link: gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -o heatbugs Heatbug.o HeatSpace.o main.o HeatbugModelSwarm.o HeatbugObserverSwarm.o HeatbugBatchSwarm.o -L/usr/lib/x86_64-linux-gnu/swarm /usr/lib/x86_64-linux-gnu/swarm/libswarm.so -Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/swarm -Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/swarm pauljohn at pjlap-124:heatbugs$ After that, heatbugs runs fine. I've found the same happiness with the Artificial Stock Market. These extra warnings you see in the compiler output are 1) probably harmless but 2) very easy to fix. We just add one import statement to silence each warning. Example: HeatbugModelSwarm.m:140:3: warning: @interface of class ?Grid2d? not found [enabled by default] The fix is to add a declaration. Where we currently have #import "HeatbugModelSwarm.h" #import #import add explicitly for Grid2d.h: #import "HeatbugModelSwarm.h" #import #import #import The same is done to silence all those warnings, eg, for EZGraph, to this: #import add this as well #import On Debian systems, it appears it will always be possible to keep the old gcc-4.6 includes and runtime in addition to 4.7. I don't know how to package this so that 1) it checks that the gcc-4.6 stuff is available and 2) the EXTRAOBJCFLAGS line is properly included in Swarm's Makefile.common, but those details seem like little challenges to me now that I see a workaround for the gcc 4.7 problem. I hope Fedora leaves some door open for multiple gcc to exist at the same time. It always did in the past, i seem to recall. I'm going to spend some time following up on Scott's advice from last June about revising Swarm to tolerate gcc 4.7. He said "Porting Swarm to Mac required me to write an objc abstraction layer, during that process Apple came out with ObjC V2 so I naturally wrote the abstraction layer to match Apple's API. If you look at the file swarm-objc-apple2.h in src/defobj, you will see that all of the Swarm objc functions are just #define'd to the Apple objc functions. The same thing can be done for GNU objc by creating a swarm-objc-gnu2.h then have it be included from swarm-objc-api.h..." While it is still intimidating to go into the Swarm source code, it is a hell of a lot faster now to compile the whole thing and find out what works. pj -- Paul E. Johnson email: pauljohn at ku.edu http://pj.freefaculty.org Assoc. Director Professor, Political Science Ctr for Research Methods & Data Analysis 1541 Lilac Lane, Rm 504 1425 Jayhawk Blvd. University of Kansas Watson Library, Rm. 470 Lawrence, Kansas 66045-3129 Lawrence, Kansas 66045-7555 Ph: (785) 864-3523 Ph: (785) 864-3353