Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Using Allegro Common Lisp 3.1.20 under NeXTSTEP 3.1

1 view
Skip to first unread message

Robert Freimer

unread,
Jul 20, 1993, 10:08:59 AM7/20/93
to
When I upgraded my cube to 3.1, I discovered that ACL no longer
worked. I tried rebuilding and received an error that _alloca was
undefined. This is caused by the switch from GNU C 1.93 to 2.2.2.
alloca() is no longer in the system library and now is an internal
function to the C compiler. The fix is to rebuild with the non-shared
versions of the 3.0 libraries.

The following procedure for fixing a virgin Allegro Common Lisp is
modified from a comp.sys.next.programmer article by Bill Vrotney. You
should find all of the files mentioned here on your ACL distribution.
I refer to the top level directory of this distribution as ACL/ and
the build directory ACL/build. For upgrading from a system that
worked with 3.0, follow steps 3, 4, and 6.

Warning!!! (from Franz Inc.) This procedure results in creating a new
ucl.o binary file. You may distribute this method but not the
resulting ucl.o file.

1. Install the MusicKit_3.1.pkg available by anonymous ftp from
ccrma-ftp.stanford.edu. The Music and DSP libraries are no longer
supported by NeXT. This package includes the 3.1 version of libdsp.
The other option is to drop -ldsp from the LIBRARIES statement in step
4 below.

2. First look at the byte size of the file ACL/build/ucl.o, if the
size is 612364 bytes then skip to step 3. Otherwise look at the file
ACL/dumplispPatch. This is a shell archive that will patch ucl.o with
the "dump lisp" patch. More precisely

cd ACL
cp dumplispPatch build
cd build
/bin/sh dumplispPatch
/bin/sh install_patch.sh

Now ucl.o should be 612364 bytes long. Tthe original ucl.o will be
saved in a file called ucl_orig.o.

3. Create symbolic links from the 3.0 non-shared libraries on CDROM.
This saves space on your hard disk, since the libraries should not be
needed, except when rebuilding ACL. Another option is to copy the
libraries.

ln -s /NeXTSTEP_3.0/lib/libsys_p.a /lib/libsys3.0_p.a
ln -s /NeXTSTEP_3.0/usr/lib/libNeXT_p.a /usr/lib/libNeXT3.0_p.a

4. Edit the file ACL/build/config. You might want to save the orginal
<config file. Replace the following lines

LIBRARIES = -lNeXT_s -ldsp_s -lsys_s
USYMS = -u libsys_s -u libNeXT_s -u libdsp_s

with:

LIBRARIES = -lNeXT3.0_p -ldsp -lsys3.0_p
USYMS =

5. Edit the new binary file ACL/build/ucl.o in emacs and save the
results. Go to ACL/build directory, run emacs and

find-file ucl.o
replace-string _rld _jld
replace-string __bcopy _bcopy^@
save-buffer

The ^@ above is the null character (000 byte) and can be entered in
emacs using

C-q C-<space>

and will look in an emacs buffer as a single character ^@ and NOT two
characters.

6. Finally reinstall ACL as usual. You do this by going to the
ACL/build directory and

/bin/sh config

7. The online version of the manual (cl-manual.tar.Z) is available by
anonymous ftp from sonata.cc.purdue.edu, under /pub/next/docs. Also
grab fi-gnu-clman.tar.Z, which contain the emacs lisp code to index
the manual.


--

-Robert

0 new messages