[comp.lang.perl] successful compilation of perl-4.003 on ISC Unix 2.2 '386

lubkin@cs.rochester.edu (Saul Lubkin) (04/17/91)

Following is from a note that I sent to Larry Wall:

I sent a note before, about the difficulty that I had in making perl4.000,
on an Interactrive Unix 2.2 '386 system.  (ISC 2.2 is a dialect of Sys V,
r 3.2, with some POSIX extensions, including POSIX compliant job control.)
Namely, the perl-4.000 created failed twelve of the tests.  (And, in an
article in comp.lang.perl, I noticed that exactly the same thing had
happened to a Microport SysV/386, r3.0, user.)

I've downloaded patches 1 thru 3, and had no trouble making perl-4.003,
It passes all the tests easily.

Some notes:  I used yacc instead of "bison -y".  (Previously, I had used
"bison -y".)  Some reasons for the switch:  "bison -y" must link in
alloca.  This is in /lib/libPW.a, on ISC Unix.  But, I've seen on the net,
that that alloca shouldn't be used with "-O" optimization.  The problem
is with in-line linking of functions.  The recommended fix, is to use
the optimization condition, -W2,'-y 0'.  However, the new shell script
that handles compiler options seems to not like such a condition.  (I
think because it doesn't like single quotes).  No problem; yacc is probably
just as good.

Also, floats can be at boundaries of two bytes.  If you (try using four, the
resulting perl dumps core on every test.)  I suspect that many trying
to compile perl might make such a mistake.

I'm including a copy of my config.sh.  Thanks again for the program,
and the improvements.

				Sincerely yours,

				Saul Lubkin


#!/bin/sh
# config.sh
# This file was produced by running the Configure script.

d_eunice='undef'
define='define'
eunicefix=':'
loclist='
cat
cp
echo
expr
grep
mkdir
mv
rm
sed
sort
tr
uniq
'
expr='/bin/expr'
sed='/bin/sed'
echo='/bin/echo'
cat='/bin/cat'
rm='/bin/rm'
mv='/bin/mv'
cp='/bin/cp'
tail=''
tr='/usr/bin/tr'
mkdir='/bin/mkdir'
sort='/bin/sort'
uniq='/usr/bin/uniq'
grep='/bin/grep'
trylist='
Mcc
bison
cpp
csh
egrep
nroff
test
uname
yacc
'
test='test'
inews=''
egrep='/usr/bin/egrep'
more=''
pg=''
Mcc='Mcc'
vi=''
mailx=''
mail=''
cpp='/lib/cpp'
perl=''
emacs=''
ls=''
rmail=''
sendmail=''
shar=''
smail=''
tbl=''
troff=''
nroff='/usr/bin/nroff'
uname='/bin/uname'
uuname=''
line=''
chgrp=''
chmod=''
lint=''
sleep=''
pr=''
tar=''
ln=''
lpr=''
lp=''
touch=''
make=''
date=''
csh='/bin/csh'
bash=''
ksh=''
lex=''
flex=''
bison='/usr/bin/bison'
Log='$Log'
Header='$Header'
Id='$Id'
lastuname=''
alignbytes='2'
bin='/usr/bin'
installbin='/usr/bin'
byteorder='1234'
contains='grep'
cppstdin='cc -E'
cppminus='-'
d_bcmp='define'
d_bcopy='define'
d_bzero='define'
d_castneg='undef'
castflags='2'
d_charsprf='undef'
d_chsize='define'
d_crypt='define'
cryptlib=''
d_csh='define'
d_dosuid='undef'
d_dup2='define'
d_fchmod='undef'
d_fchown='undef'
d_fcntl='define'
d_flexfnam='undef'
d_flock='undef'
d_getgrps='undef'
d_gethent='undef'
d_getpgrp='define'
d_getpgrp2='undef'
d_getprior='undef'
d_htonl='define'
d_index='define'
d_killpg='undef'
d_lstat='undef'
d_memcmp='define'
d_memcpy='define'
d_mkdir='define'
d_msg='define'
d_msgctl='define'
d_msgget='define'
d_msgrcv='define'
d_msgsnd='define'
d_ndbm='undef'
d_odbm='undef'
d_open3='define'
d_readdir='define'
d_rename='define'
d_rmdir='define'
d_select='define'
d_sem='define'
d_semctl='define'
d_semget='define'
d_semop='define'
d_setegid='define'
d_seteuid='define'
d_setpgrp='define'
d_setpgrp2='undef'
d_setprior='undef'
d_setregid='define'
d_setresgid='undef'
d_setreuid='define'
d_setresuid='undef'
d_setrgid='undef'
d_setruid='undef'
d_shm='define'
d_shmat='define'
d_shmctl='define'
d_shmdt='define'
d_shmget='define'
d_socket='define'
d_sockpair='undef'
d_oldsock='undef'
socketlib=''
d_statblks='undef'
d_stdstdio='define'
d_strctcpy='define'
d_strerror='undef'
d_symlink='undef'
d_syscall='define'
d_truncate='undef'
d_vfork='undef'
d_voidsig='define'
d_tosignal='void'
d_volatile='undef'
d_vprintf='define'
d_charvspr='undef'
d_wait4='undef'
d_waitpid='undef'
gidtype='unsigned short'
groupstype='int'
i_fcntl='define'
i_gdbm='undef'
i_grp='define'
i_niin='define'
i_sysin='undef'
i_pwd='define'
d_pwquota='undef'
d_pwage='define'
d_pwchange='undef'
d_pwclass='undef'
d_pwexpire='undef'
d_pwcomment='define'
i_sys_file='undef'
i_sysioctl='define'
i_time='undef'
i_sys_time='define'
i_sys_select='undef'
d_systimekernel='undef'
i_utime='define'
i_varargs='define'
i_vfork='undef'
intsize='4'
libc='/lib/libc_s.a'
nm_opts=''
libndir=''
i_my_dir='undef'
i_ndir='undef'
i_sys_ndir='undef'
i_dirent='define'
i_sys_dir='undef'
d_dirnamlen='undef'
ndirc=''
ndiro=''
mallocsrc=''
mallocobj=''
usemymalloc='n'
mallocptrtype='void'
mansrc='/usr/catman/my_man/source'
manext='1'
models='none'
split=''
small=''
medium=''
large=''
huge=''
optimize='-O'
ccflags=''
cppflags=''
ldflags=''
cc='cc'
libs='-lnsl_s -ldbm -lm -lx -linet -lc_s'
n=''
c='\c'
package='perl'
randbits='15'
scriptdir='/usr/bin'
sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CLD PWR WINCH 21 POLL CONT STOP TSTP TTIN TTOU'
spitshell='cat'
shsharp='true'
sharpbang='#!'
startsh='#!/bin/sh'
stdchar='unsigned char'
uidtype='unsigned short'
usrinclude='/usr/include'
inclPath=''
void=''
voidhave='7'
voidwant='7'
w_localtim='1'
w_s_timevl='1'
w_s_tm='1'
yacc='yacc'
lib=''
privlib='/usr/lib/perl'
installprivlib='/usr/lib/perl'
CONFIG=true
PATCHLEVEL=3