[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.
- [no subject], Marcello Gallucci, 2002/03/01
- Building Swarm, which gcc, which Swarm snapshot, etc. (was Re:,
Paul Johnson <=
- Re: none, Marcus G. Daniels, 2002/03/01