wjb@cogsci.psy.jhu.edu (01/31/89)
[Sam Finn asks if anyone has gotten KCL running under SUN OS 4.0] I have gotten ACKL 1.79 working on a 3/160 running OS 4.0. I did basically the same thing that Sam states is his message, but I linked AKCL with the -Bstatic option. Copies of the two messages about this that I sent to the KCL mailing list follow. I would reccommend that anyone who intends to use KCL join the mailing list by sending mail to kcl-request@cli.com Bill Bogstad bogstad@crabcake.cs.jhu.edu wjb@cogsci.psy.jhu.edu 1st Message: A few days ago I sent a message to this list requesting information on how to compile AKCL 1.79 on a SUN 3 running SUN OS 4.0. I received one response from pc@linus.mitre.org (thanks by the way), who suggested that I add "-Bstatic" to the CC definition in h/sun3.defs in order to turn off the link with shared libraries which has been made the default. I tried to do that and ran into what at this time appears to be a bug in the SUN C compiler and/or assembler which resulted in hundreds of error messages from the assembler during the 2nd compilation of cmpnew/cmptop.c. The rest of this message describes some of the other things I that tried and my final solution. I turned my attentions towards the possibility of using various combinations of GNU software as replacements for the SUN software. The GNU 1.25 assembler did not like the code generated by the SUN 4.0 C compiler. I did not want to use GCC 1.30 on just that file because I was uncertain about whether or not structures where being passed (an incompatibility between the GNU & SUN compiler). A complete GNU system (compiler, assembler, and linker) doesn't work, apparently because of a new symbol (__DYNAMIC) that SUN added to /lib/crt0.o to indicate whether an executable uses shared libraries. Using the GNU compiler and assembler also doesn't work because the SUN linker still tries to link the executable with the shared library and GCC doesn't understand the "-Bstatic" flag that SUN uses to tell the linker to turn this off. My solution was to make a special version of the gcc driver program with "-Bstatic" the default. To do this, change the LINK_SPEC entry in gcc's config-sun4.h to the following and remake only the gcc driver (from gcc.c). [Note: this should no longer be necessary as the latest gcc (1.32) appears to have support for the -Bstatic option.] #define LINK_SPEC "%{!e*:-e start} -dc -dp -Bstatic" Install this new gcc driver somewhere in your path as gcc.mod and set CC in h/sun3.defs to CC = gcc.mod ... You can then go ahead and compile AKCL as instructed in the README file. The result (eventually) is a saved_kcl which appears to be completely functional. I have already contacted SUN about the problem with their software and hope to have at least a confirmation of the existence of this bug shortly. 2nd message: I sent a message a few months ago about problems with getting KCL to run under SUN OS 4.0 on a 3/160. The actual problem was with the SUN compiler/assembler being distributed with that system. My suggested solution was the use of GCC. Since posting that note I have received a confirmation of the problem from SUN and the following BugID # 1016628. I have also been told that it will be fixed in SUN OS 4.1. In the meantime, a fix has been suggested. Adding the arguments "-Qoption as -O" to invocations of the C compiler apparently solves the problem. I have verified this with the particular source file which gave me problems, but have not and do not at this time intend to recompile all of KCL to see if there are any other problems. Hopefully, though, this will help others who are in a similar situation.