davis@hobbes.chem.uh.edu (Malcolm Davis) (10/16/90)
I have been trying to build perl 3.0 patchlevel 28 on a Silicon Graphics 4D70 running IRIX 3.3.1. I have tried a number of different times with different configurations. The program compiles fine, but when I run `make test' it complains that no tests have been run. Running t/TEST directly produces the same result. Some of the individual tests run fine while others die. Bash returns an error "Broken Pipe". As an example, using the debugger, I have found that io.argv dies on the line $x = `./perl -e 'while (<>) {print \$.,\$_;}' Io.argv.tmp Io.argv.tmp`; I have a list of the tests that fail and I am preparing to go in and search for commonalities, but I thought I'd first check to see if anyone has already solved this problem. Thanks in advance, Malcolm E. Davis E-mail : davis@hobbes.chem.uh.edu US-mail: Dept. of Chem.; Univ. of Houston; Houston, TX 77204-5641 -- Malcolm "Time flies like an arrow. Fruit flies like a banana."
eastick@me.utoronto.ca (Doug Eastick) (10/18/90)
davis@hobbes.chem.uh.edu (Malcolm Davis) writes: undef voidsig, memcmp, vfork and maybe volatile ---- >From mullian.ee.mu.OZ.AU!meb Fri Oct 12 22:44:35 1990 Received: from munnari.oz.au by me.utoronto.ca with SMTP id 22139; Fri, 12 Oct 90 22:43:07 EDT Received: from mullian.ee.mu.OZ.AU by munnari.oz.au with SMTP (5.64+1.3.1+0.50) id AA26562; Sat, 13 Oct 1990 12:42:25 +1000 (from meb@mullian.ee.mu.OZ.AU for eastick@me.utoronto.ca) Received: from orac.ee.mu.OZ.AU by mullian.ee.mu.OZ.AU (4.1) id AA09294; Sat, 13 Oct 90 12:42:22 EST Received: by orac.ee.mu.OZ.AU (4.0) id AA02475; Sat, 13 Oct 90 12:42:22 EST Date: Sat, 13 Oct 90 13:42:22 EDT From: meb@mullian.ee.mu.OZ.AU (Matthew Barry) Message-Id: <9010130242.2475@orac.ee.mu.OZ.AU> To: eastick@me.utoronto.ca Subject: Perl on IRIX 3.3.0 Reply-To: meb@ee.mu.OZ.AU Status: OR Hello Doug, Hopefully you have already been inundated with answers on how to do get perl running under irix. If not read on. Below is the advice I received to the same question. I hope this helps, Matthew Date: Thu, 13 Sep 90 13:37:22 PDT From: uunet!chevpyr!jtmwi@munnari.oz (T.M. Wissler) To: meb@ee.mu.oz Subject: perl on irix at 3.3 A friend saw your note about perl and forwarded it to me. I recently brought up perl on an sgi 4d/20 at 3.3 and an sgi 4d/25 at 3.2 I started with the GNU distribution of perl at patchlevel 18. Everything was fine at 3.2 with the exception of the signal type which you noted. 3.3 was a mess. I finally tracked down the following fixes, all doable within the config.sh file: 1) Disable vfork. Some unknown problem here causes most of the core dumps. vfork didn't exist at 3.2. 2) Disable memcmp. memcmp is buggy. It was ok at 3.2, but does not work at 3.3. DEC MIPS machines also have a buggy memcmp which is detected by perl. It also checks for little-endian to single out the DEC implementation, so sgi slips through. I changed the source to not check endian, but it is easier to just change config.sh (as shown below) to disable memcmp. 3) I also have volatile disabled. I don't know if this is required for perl to work properly. 4) Use the -D_BSD_COMPAT switch to cc. I hope I didn't forget anything. Following is the complete config.sh which I used. Good luck. Tom Wissler #!/bin/sh # config.sh # This file was produced by running the Configure script # then tweaked by hand 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 cpp csh egrep test ' test='test' inews='' egrep='/usr/bin/egrep' more='' pg='' Mcc='Mcc' vi='' mailx='' mail='' cpp='/usr/lib/cpp' perl='' emacs='' ls='' rmail='' sendmail='' shar='' smail='' tbl='' troff='' nroff='' uname='' uuname='' line='' chgrp='' chmod='' lint='' sleep='' pr='' tar='' ln='' lpr='' lp='' touch='' make='' date='' csh='/bin/csh' Log='$Log' Header='$Header' bin='/usr/local/bin' byteorder='4321' contains='grep' cppstdin='/usr/lib/cpp' cppminus='' d_bcmp='define' d_bcopy='define' d_bzero='define' d_castneg='define' d_charsprf='undef' d_crypt='define' cryptlib='' d_csh='define' d_dosuid='undef' d_dup2='define' d_fchmod='define' d_fchown='define' d_fcntl='define' d_flock='define' d_getgrps='define' d_gethent='define' d_getpgrp='undef' d_getpgrp2='undef' d_getprior='undef' d_htonl='define' d_index='undef' d_ioctl='define' d_killpg='define' d_lstat='define' d_memcmp='undef' d_memcpy='define' d_mkdir='define' d_ndbm='define' d_odbm='define' d_readdir='define' d_rename='define' d_rmdir='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='define' d_setruid='define' d_socket='define' d_sockpair='define' d_oldsock='undef' socketlib='' d_statblks='undef' d_stdstdio='define' d_strctcpy='define' d_strerror='define' d_symlink='define' d_syscall='define' d_varargs='define' d_vfork='undef' d_voidsig='undef' d_volatile='undef' d_vprintf='define' d_charvspr='undef' d_wait4='define' gidtype='int' i_dirent='define' d_dirnamlen='undef' i_fcntl='define' i_grp='define' i_niin='define' i_pwd='define' d_pwquota='undef' d_pwage='define' d_pwchange='undef' d_pwclass='undef' d_pwexpire='undef' i_sysdir='define' i_sysioctl='define' i_sysndir='undef' i_time='undef' i_systime='define' d_systimekernel='undef' i_utime='define' i_varargs='define' i_vfork='undef' intsize='4' libc='/usr/lib/libc.a' mallocsrc='' mallocobj='' usemymalloc='n' mansrc='/usr/catman/local/cat1' manext='1' models='none' split='' small='' medium='' large='' huge='' optimize='-O' ccflags='-D_BSD_COMPAT -DDEBUGGING' cppflags=' -D_BSD_COMPAT -DDEBUGGING' ldflags='-s' cc='cc' libs='-lsun -lbsd -lmalloc -lc_s' n='' c='\c' package='perl' randbits='15' sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CLD PWR STOP TSTP POLL IO URG WINCH VTALRM PROF CONT TTIN TTOU XCPU XFSZ' spitshell='cat' shsharp='true' sharpbang='#!' startsh='#!/bin/sh' stdchar='unsigned char' uidtype='uid_t' voidflags='7' defvoidused='7' yacc='yacc' privlib='/usr/local/lib/perl' lib='' CONFIG=true
srp@babar.mmwb.ucsf.edu (Scott R. Presnell) (10/19/90)
davis@hobbes.chem.uh.edu (Malcolm Davis) writes: >I have been trying to build perl 3.0 patchlevel 28 on a Silicon Graphics >4D70 running IRIX 3.3.1. I have tried a number of different times with >different configurations. The program compiles fine, but when I run >`make test' it complains that no tests have been run. Running t/TEST >directly produces the same result. Some of the individual tests run fine >while others die. Bash returns an error "Broken Pipe". As an example, [...] [ (Hi Malcolm...) The problem is that IRIX 3.3.1 vfork() doesn't work like perl expects. I'm no system guru, so I don't know if SGI's vfork is broken or if perl is expecting something unreasonable. This implementation of vfork() uses the sproc() system call. Anyway. The fix is that you have to hand edit config.sh to undo the fact that Configure has recognized the existence of vfork(). Configure gives you a chance to do this just before makedepend. You will also not be able to use -O (though you can still use the default optimization of -O1) in order to make all the tests pass without fail. Good Luck. - Scott Presnell -- Scott Presnell +1 (415) 476-9890 Pharm. Chem., S-926 Internet: srp@cgl.ucsf.edu University of California UUCP: ...ucbvax!ucsfcgl!srp San Francisco, CA. 94143-0446 Bitnet: srp@ucsfcgl.bitnet
eastick@me.utoronto.ca (Doug Eastick) (10/19/90)
srp@babar.mmwb.ucsf.edu (Scott R. Presnell) writes: >You will also not be able to use -O (though you can still use the default >optimization of -O1) in order to make all the tests pass without fail. All my tests passed with -O. I had a few complaints along the lines of "this procedure not optimized ... use <somflag>=2048" or some such number. make test passed so I left it. Larry, what's the scoop on the vfork() problem? Just curious. print <<BARF Just another perl hacker trying to find uses for it at work BARF
lwall@jpl-devvax.JPL.NASA.GOV (Larry Wall) (10/19/90)
In article <90Oct18.210104edt.21825@me.utoronto.ca> eastick@me.utoronto.ca (Doug Eastick) writes:
: Larry, what's the scoop on the vfork() problem? Just curious.
Being neither omniscient nor the proud owner of an SGI, I haven't the foggiest.
Larry