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