[comp.sys.next] perl4.0.beta under 2.0

pbiron@weber.ucsd.edu (Paul Biron) (02/25/91)

In article <1991Feb24.165644.10032@solo.csci.unt.edu> gene@ponder.csci.unt.edu (Gene De Lisa) writes:
>I just tried to install perl and the Config script couldn't
>find the C library. Sure enough I cannot find libc.a either.
>Is it libg.a because it's gcc?
>
>(2.0 on a slab)

libc doesn't exist in 2.0, what is normally there is all in the shared
library libsys_s (silly, I know, but not *that* inconvient).

I recently retrieved the perl4.0.beta distribution and installed it
on my Cube ('030, running 2.0).  I only had to change 2 lines in the
Configure script to get it to find the shared lib.  I sent the patches
back to LWall for distribution in the "real" release of 4.0.  So if
you want you can just wait until that's released (should be sometime
next week) or apply the patches below to the beta release.


-----------------------------------------------------------------------
Fighting for peace is like fucking for virginity!
-----------------------------------------------------------------------
Paul Biron     garp!pbiron@keynes.ucsd.edu    (can have NeXT attachments)
SnUG/SIGHaCK        pbiron@ucsd.edu           (normal net mail)

"Outside of a dog, a book is man's best friend.
 Inside of a dog, it's too dark to read."
                         --Groucho Marx
-----
Included below are minor changes needed to the perl4.0.beta distribuation
to compile under NeXTOS 2.0.

The changes are 2 lines in Configure, and an additional note in the
README file.  Note that while I can't guarantee that these changes
also work under NeXTOS 1.0 (since I don't have access to a 1.0 machine
any more) I'm almost positive they will work in 1.0 as well.
The changes to Configure allow it to find the NeXT shared library
(since there is no libc in 2.0, all of it is in libsys_s, including
what is normally in -lndbm).  The changes to README note which -l flags
should be used and include a note that ranlib(1) may have to be run on
libnm.a before compilation, since NeXT forgot to.

Also included is a portion of the output of `make all` which shows
a few compiler warnings.  These warnings don't seem to be serious
since compilation and all tests succeed dispite them.  I don't have
the time to tract down the exact reasons for the warnings, but thought
that maybe you would.

Note: the "standard" C compiler is NeXTOS 2.0 is a modified gcc.  The
output of `cc -v` is "NeXT Release 2.0 (v31.1) -- GNU version 1.36"

---- Cut Here and feed the following to sh ----
#!/bin/sh
# This is a shell archive (shar 3.47)
# made 02/22/1991 08:57 UTC by garp!pbiron@keynes.ucsd.edu
# Source directory /optical/usr/local/src/gnu/perl/perl-4.0.beta
#
# existing files will NOT be overwritten unless -c is specified
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#    949 -rw-r--r-- Configure.patch
#    610 -rw-r--r-- README.patch
#    592 -rw-r--r-- cc.warnings
#
# ============= Configure.patch ==============
if test -f 'Configure.patch' -a X"$1" != X"-c"; then
	echo 'x - skipping Configure.patch (File already exists)'
else
echo 'x - extracting Configure.patch (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'Configure.patch' &&
X*** Configure	Fri Feb 15 14:58:28 1991
X--- Configure.mod	Fri Feb 22 00:35:46 1991
X***************
X*** 309,315 ****
X  serve_unix_tcp=""
X  d_ndir=ndir
X  voidwant=1
X! libswanted="net_s net nsl_s nsl socket nm ndir ndbm dbm sun m bsd BSD x c_s"
X  inclwanted='/usr/netinclude /usr/include/sun /usr/include/bsd /usr/include/lan'
X  
X  : Now test for existence of everything in MANIFEST
X--- 309,315 ----
X  serve_unix_tcp=""
X  d_ndir=ndir
X  voidwant=1
X! libswanted="net_s net nsl_s nsl socket nm ndir ndbm dbm sun m bsd BSD x c_s sys_s"
X  inclwanted='/usr/netinclude /usr/include/sun /usr/include/bsd /usr/include/lan'
X  
X  : Now test for existence of everything in MANIFEST
X***************
X*** 1613,1618 ****
X--- 1613,1619 ----
X  set /usr/ccs/lib/libc.so
X  test -f $1 || set /usr/lib/libc.so
X  test -f $1 || set /usr/lib/libc.so.[0-9]*
X+ test -f $1 || set /lib/libsys_s.a
X  eval set \$$#
X  if test -f "$1"; then
X      echo "Your shared C library is in $1."
SHAR_EOF
chmod 0644 Configure.patch ||
echo 'restore of Configure.patch failed'
Wc_c="`wc -c < 'Configure.patch'`"
test 949 -eq "$Wc_c" ||
	echo 'Configure.patch: original size 949, current size' "$Wc_c"
fi
# ============= README.patch ==============
if test -f 'README.patch' -a X"$1" != X"-c"; then
	echo 'x - skipping README.patch (File already exists)'
else
echo 'x - extracting README.patch (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'README.patch' &&
X*** README	Sat Jan 19 14:26:15 1991
X--- README.mod	Fri Feb 22 00:49:28 1991
X***************
X*** 124,129 ****
X--- 124,133 ----
X      Machines with half-implemented dbm routines will need to #undef ODBM & NDBM.
X      C's that don't try to restore registers on longjmp() may need -DJMPCLOBBER.
X  	(Try this if you get random glitches.)
X+ 	NeXTOS 2.0 should specify -lnm -lm -lsys_s as "additional libraries" and
X+ 	 should *NOT* use the malloc supplied with perl.  You may also have
X+ 	 to run ranlib(1) on /usr/lib/libnm.a (as it seems NeXT forgot to do
X+ 	 this before they releases 2.0).
X  
X  5)  make test
X  
SHAR_EOF
chmod 0644 README.patch ||
echo 'restore of README.patch failed'
Wc_c="`wc -c < 'README.patch'`"
test 610 -eq "$Wc_c" ||
	echo 'README.patch: original size 610, current size' "$Wc_c"
fi
# ============= cc.warnings ==============
if test -f 'cc.warnings' -a X"$1" != X"-c"; then
	echo 'x - skipping cc.warnings (File already exists)'
else
echo 'x - extracting cc.warnings (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'cc.warnings' &&
Xdoio.c:1332: warning: argument passing between incompatible pointer types
Xdoio.c:1362: warning: argument passing between incompatible pointer types
Xdoio.c:1423: warning: argument passing between incompatible pointer types
Xdoio.c:1496: warning: argument passing between incompatible pointer types
Xdoio.c:1541: warning: argument passing between incompatible pointer types
Xdoio.c:1541: warning: argument passing between incompatible pointer types
Xdoio.c:1545: warning: argument passing between incompatible pointer types
Xdoio.c:1545: warning: argument passing between incompatible pointer types
SHAR_EOF
chmod 0644 cc.warnings ||
echo 'restore of cc.warnings failed'
Wc_c="`wc -c < 'cc.warnings'`"
test 592 -eq "$Wc_c" ||
	echo 'cc.warnings: original size 592, current size' "$Wc_c"
fi
exit 0
Paul Biron      pbiron@ucsd.edu        (619) 534-5758
Central University Library, Mail Code C-075-R
Social Sciences DataBase Project
University of California, San Diego, La Jolla, Ca. 92093