swarm-support
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Building Swarm, which gcc, which Swarm snapshot, etc. (was Re:


From: Paul Johnson
Subject: Building Swarm, which gcc, which Swarm snapshot, etc. (was Re:
Date: Fri, 01 Mar 2002 09:44:38 -0600
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8) Gecko/20020212

It must be the season for new swarm installs, because I've gotten 5 or 6 messages like this. The real expert on this is Marcus Daniels, I am just telling you what I think he has taught me. I'm certainly more verbose than he is, but I'm a professor, and that's like a having a license for it :) I'm going to try to write down everything I can remember on this issue and then in the future we can refer people who ask to this thread. I sincerely hope i do not cause more confusion than I clear up.

First, I wonder if you couldn't try to install the RPMs I build for RedHat systems? It used to be Mandrake was identical to RedHat, except they compiled packages with i686 optimization. I realize they have some GUI changes in the last year, but it seems worth a try.

If you build your own,the story is this: gcc-2.96 is not a real release from the GCC team. We could not get it to work at several stages. I know for certain the one in RH7.0 did not work, but we were able to patch both it and Swarm to make it work. There were flaws in some snapshots of that compiler, and a dig into the problems exposed a couple of places where we could improve Swarm itself. My recollection is that, even if you use the "perfected" version of 2.96, Swarm-2.1.1 does not compile. A newer snapshot of Swarm will, however. I think that conversation is in bugzilla.redhat.com still.

Anyway, to build swarm-2.1.1 as it was distributed, you probably must step back to gcc 2.95.3. It could be gcc3 will work, but I don't know. I am certain 2.95.3 works. On RedHat 7.2, there is gcc-2.96.?? as well as gcc3 and I have patched and rebuilt their gcc3 to make better Swarm. I think the last time I did that it was gcc-3.0.1 and the RPMS are in my software directory (see page address below). Alternately, I have a patched edition of gcc-2.95.2 as well as 2.95.3. http://lark.cc.ukans.edu/~pauljohn/Swarm/miscSupportSoftware/ My recollection is that there was a change in the GNU C library between redhat 5 and 6 which meant that my 2.95.2 rpms did not work on the newer system, and that's why I have 2.95.3.

If you are going to the trouble of building swarm, I'd suggest getting the newest source from the testing directory ftp://ftp.swarm.org/pub/swarm/src/testing/ and using a patched version of gcc3.

In Swarm-2.1.1, the gcc patch was needed only for cosmetic reasons, it makes an annoying warning go away when swarm programs are built. On the other hand, if you get a swarm snap from summer of 2001 or newer, there is one default setting for optimization which assumes you are using gcc-3.0.x that has been patched to allow some some special magic that Marcus Daniels worked out. (My recollection about the critical line is below)

Right at this minute, I can't find the directory in Swarm ftp where those patches are stored, but in my source directory I have my verbosely renamed versions of some of them and I've copied them to my page and you can see for yourself. Marcus modestly named these "objc.diff" or such, and when I rebuilt the RPMS for gcc I put his name on there to make sure I would not lose them.

for gcc 3.0.1
http://lark.cc.ukans.edu/~pauljohn/Swarm/Marcus_objc_gcc301.patch
I believe that is the same file as this one I find in Swarm ftp
ftp://ftp.swarm.org/pub/swarm/src/testing/objc.diffs

for gcc 2.95.2
http://lark.cc.ukans.edu/~pauljohn/Swarm/Marcusobjc-gcc295.patch

I don't know if there is a new patch for gcc-3.0.4.

It gets very hard for me to remember exactly which compiler works on exactly which edition of which system, but the current Swarm snapshot compiles well with a patched gcc3. RedHat RPM system makes this easier because, except when I run out of file space, I can always look at the SRPM and SPEC file to see what the patches were, as you see here
http://lark.cc.ukans.edu/~pauljohn/Swarm/miscSupportSoftware/gcc-upgrades/3.0.1/gcc-3.0.1-0.1PJ.src.rpm
or
http://lark.cc.ukans.edu/~pauljohn/Swarm/miscSupportSoftware/gcc-upgrades/2.95.3/gcc-2.95.3-27.src.rpm

If your Mandrake system is still like RedHat, then you have the gcc3 packages, and if you want to rebuild them for your system, I have the SRPM file here:
http://lark.cc.ukans.edu/~pauljohn/Swarm/miscSupportSoftware/gcc-upgrades/3.0.1RH72/gcc3-3.0.1-3.src.rpm

My recollection is that, if you want to build a current snapshot of Swarm without patching gcc-3.0.1, then it is necessary to make one small change in the Swarm source, in interface.el. I think you want to put a semicolon in to reverse the effect of this patch:

*** interface.el-original       Sun Jul  8 19:22:33 2001
--- interface.el        Sun Jul  8 19:22:56 2001
***************
*** 625,631 ****

  (defun create-dispatch-hash-table (protocol phase)
    (let ((ht (make-hash-table)))
!     ;(load-dispatch-hash-table protocol phase ht)
      ht))

  (defun c-objc-type (type)
--- 625,631 ----

  (defun create-dispatch-hash-table (protocol phase)
    (let ((ht (make-hash-table)))
!     (load-dispatch-hash-table protocol phase ht)
      ht))

  (defun c-objc-type (type)

This feature, which uses the special gcc fix Marcus make, allows for fast method lookups.

Now I'm holding up my right hand and taking the oath: I believe this is all the information that is fit to print.

pj


Marcello Gallucci wrote:
Hello
I'm compling swarm-2.1.1 on  linux (Mandrake 8.1, i596, kernel 2.4),
using gcc 2.96 (plus emacs, gperf, tcl8.3 tk8.3 libBTL etc).
When I complile I get this error:

In file included from activity.m:12:
activity.h:516:2: invalid preprocessing directive #&
activity.h:553:2: invalid preprocessing directive #"481"

I've checked activity.h and there is nothing strange at line 516 or
513. there are actually comments at those lines.
Any help
thanks a lot
marcello





--
Paul E. Johnson                       email: address@hidden
Dept. of Political Science            http://lark.cc.ku.edu/~pauljohn
University of Kansas                  Office: (785) 864-9086
Lawrence, Kansas 66045                FAX: (785) 864-5700


                 ==================================
  Swarm-Support is for discussion of the technical details of the day
  to day usage of Swarm.  For list administration needs (esp.
  [un]subscribing), please send a message to <address@hidden>
  with "help" in the body of the message.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]