🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Galen Seitz Thu, 12 Nov 1992 07:43
problems building perl on a Tek 4319 running Utek 4.1
#5
Author: Galen Seitz
Date: Thu, 12 Nov 1992 07:43
288 lines
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
#6
Author: Kaveh R. Ghazi
Date: Thu, 12 Nov 1992 17:29
54 lines
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