Thread View: pdx.utek
2 messages
2 total messages
Started by Galen Seitz
Thu, 12 Nov 1992 07:43
problems building perl on a Tek 4319 running Utek 4.1
Author: Galen Seitz
Date: Thu, 12 Nov 1992 07:43
Date: Thu, 12 Nov 1992 07:43
288 lines
5367 bytes
5367 bytes
I'm trying to build perl using the utek C compiler and I get the following errors from "make test". All of the other tests pass. op/dbm.........FAILED on test 8 op/exec........FAILED on test 6 op/regexp......FAILED on test 109 op/sprintf.....FAILED on test 1 op/stat........FAILED on test 35 op/vec.........FAILED on test 11 lib/big........FAILED on test 152 Failed 7 tests. Turning off the optimizer and defining CRIPPLED_CC do not appear to affect the results of the tests. Any ideas? I've included my config.sh below. Thanks, Galen Seitz galens@htbawd.rain.com : use /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='/bin/tr' mkdir='/bin/mkdir' sort='/bin/sort' uniq='/bin/uniq' grep='/bin/grep' trylist=' Mcc bison cpp csh egrep line nroff perl test uname yacc ' test='test' inews='' egrep='/bin/egrep' more='' pg='' Mcc='Mcc' vi='' mailx='' mail='' cpp='/lib/cpp' perl='perl' emacs='' ls='' rmail='' sendmail='' shar='' smail='' tbl='' troff='' nroff='/bin/nroff' uname='/bin/uname' uuname='' line='/bin/line' chgrp='' chmod='' lint='' sleep='' pr='' tar='' ln='' lpr='' lp='' touch='' make='' date='' csh='/bin/csh' bash='' ksh='' lex='' flex='' bison='/usr/local/bin/bison' Log='$Log' Header='$Header' Id='$Id' lastuname='UTek toto 4.1 1.4 Tek4319' alignbytes='2' bin='/usr/local/bin' installbin='/usr/local/bin' byteorder='4321' contains='grep' cppstdin='/lib/cpp' cppminus='' d_bcmp='define' d_bcopy='define' d_safebcpy='define' d_bzero='define' d_castneg='define' castflags='0' d_charsprf='define' d_chsize='undef' d_crypt='define' cryptlib='' d_csh='define' d_dosuid='undef' d_dup2='define' d_fchmod='define' d_fchown='define' d_fcntl='define' d_flexfnam='define' d_flock='define' d_getgrps='define' d_gethent='define' d_getpgrp='define' d_getpgrp2='undef' d_getprior='define' d_htonl='undef' d_index='undef' d_isascii='undef' d_killpg='define' d_lstat='define' d_memcmp='undef' d_memcpy='undef' d_safemcpy='undef' d_memmove='undef' d_memset='undef' d_mkdir='define' d_msg='undef' d_msgctl='undef' d_msgget='undef' d_msgrcv='undef' d_msgsnd='undef' d_ndbm='define' d_odbm='define' d_open3='define' d_readdir='define' d_rename='define' d_rewindir='undef' d_rmdir='define' d_seekdir='define' d_select='define' d_sem='undef' d_semctl='undef' d_semget='undef' d_semop='undef' d_setegid='define' d_seteuid='define' d_setpgrp='define' d_setpgrp2='undef' d_setprior='define' d_setregid='define' d_setresgid='undef' d_setreuid='define' d_setresuid='undef' d_setrgid='define' d_setruid='define' d_shm='undef' d_shmat='undef' d_voidshmat='undef' d_shmctl='undef' d_shmdt='undef' d_shmget='undef' d_socket='define' d_sockpair='define' d_oldsock='undef' socketlib='' d_statblks='define' d_stdstdio='define' d_strctcpy='define' d_strerror='undef' d_symlink='define' d_syscall='define' d_telldir='define' d_truncate='define' d_vfork='define' d_voidsig='undef' d_tosignal='int' d_volatile='undef' d_vprintf='undef' d_charvspr='undef' d_wait4='undef' d_waitpid='undef' gidtype='int' groupstype='int' i_fcntl='undef' i_gdbm='undef' i_grp='define' i_niin='define' i_sysin='undef' i_pwd='define' d_pwquota='define' d_pwage='undef' d_pwchange='undef' d_pwclass='undef' d_pwexpire='undef' d_pwcomment='define' i_sys_file='define' i_sysioctl='define' i_time='undef' i_sys_time='define' i_sys_select='undef' d_systimekernel='undef' i_utime='undef' i_varargs='define' i_vfork='undef' intsize='4' libc='/lib/libc.a' nm_opts='' libndir='' i_my_dir='undef' i_ndir='undef' i_sys_ndir='undef' i_dirent='undef' i_sys_dir='define' d_dirnamlen='define' ndirc='' ndiro='' mallocsrc='malloc.c' mallocobj='malloc.o' d_mymalloc='define' mallocptrtype='char' mansrc='/usr/local/man/man1' manext='1' models='none' split='' small='' medium='' large='' huge='' optimize=' ' ccflags='-DCRIPPLED_CC' cppflags='' ldflags='' cc='cc' nativegcc='' libs='-ldbm -lPW -lm' n='' c='\c' package='perl' randbits='31' scriptdir='/usr/local/bin' installscr='/usr/local/bin' sig_name='ZERO HUP INT QUIT ILL TRAP IOT DISPLAY FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF USR1 USR2 WINCH PWR LOST' spitshell='cat' shsharp='true' sharpbang=': use ' startsh=': use /bin/sh' stdchar='char' uidtype='int' usrinclude='/usr/include' inclPath='' void='' voidhave='7' voidwant='7' w_localtim='1' w_s_timevl='1' w_s_tm='1' yacc='/bin/yacc' lib='' privlib='/usr/local/lib/perl' installprivlib='/usr/local/lib/perl' PATCHLEVEL=35 CONFIG=true
Re: problems building perl on a Tek 4319 running Utek 4.1
Author: Kaveh R. Ghazi
Date: Thu, 12 Nov 1992 17:29
Date: Thu, 12 Nov 1992 17:29
54 lines
2446 bytes
2446 bytes
> I'm trying to build perl using the utek C compiler and I get the following
> errors from "make test". All of the other tests pass.
>
> op/dbm.........FAILED on test 8
> op/exec........FAILED on test 6
> op/regexp......FAILED on test 109
> op/sprintf.....FAILED on test 1
> op/stat........FAILED on test 35
> op/vec.........FAILED on test 11
> lib/big........FAILED on test 152
> Failed 7 tests.
>
> Turning off the optimizer and defining CRIPPLED_CC do not appear to affect
> the results of the tests. Any ideas? I've included my config.sh below.
>
> Thanks,
> Galen Seitz
> galens@htbawd.rain.com
I had the same result. The problem is that the atof() and other math
routines in utek are not very accurate. I know it sounds wierd but that
causes all the seemingly unrelated above errors in the test suite.
Perl reads all numbers as strings and keeps them internally as doubles
using the atof() call for the conversion. It then casts them to ints when
doing integer operations.
For some numbers, the atof() in utek is off by a bit. The following
code illustrates this:
> #include <math.h>
>
> main()
> {
> printf("%f\n",atof("255"));
> }
The output of this program is: 254.999990. When you cast that to
an int, it gets rounded down to 254 and thus in a test suite which was
expecting a result of 255, you get what look like test failures but which
are really atof() inaccuracies.
My solution was to get better atof() and related routines and link
them in by hand to create the perl executable. I found good math code in
the GNU libc package. I remember you definitely need more of the math
functions than just atof(), definitely strtod() and maybe pow() and log*().
I forget which ones exactly but it should become clear when you do it.
Good luck,
--Kaveh
--
Kaveh R. Ghazi CAIP Center, Rutgers University.
ghazi@caip.rutgers.edu rutgers!caip.rutgers.edu!ghazi
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads