Mailing List Archive

solaris 2.4 x86 trubls
greetings from a potential new outpost of perl-dom!

at present, however, i'm a center for perl-dumb!
if you can help, i definitely could use it...
here's a summary of what i've tried to date and the
current perl-related status.

i'm running solaris 2.4_x86 on a dual pentium work
station w/ 32 MB of ram. i'm using Sun's ProCompiler
C 2.0.1.

my lead-off effort has been to bring up perl 5.001.
i've made 9 iterations (!). at various points, i've had
an installed perl that passes 100% of the function tests.

the initial installation was made using Configure, with the
solaris_2 hints. i took mostly default suggestions.
i found that using solaris' malloc seems to be better
than using the malloc that came with perl. i've tried
both dynamic and static loading, and have obtained
very similar performance with each. I found something
peculiar about the assessment of the number of bits
provided by the rand() function (seems to be some
disagreement about whether the routine provides
15 or 31 bits). 15 works. but I think it should be 31,
which doesn't work!

however, perl has not been "sane" on my system, yet.
one continuous defect involves the simple test example
given below (ptst_local perl script plus the set_cpu
procedure written by the "basis" code team at llnl).
i've also had intermittent problems with core dumps due
to Segmentation Faults.

debugging to date has not been successful in curing the
main problem.

i did identify and fix two small (?) bugs in the perl 5.001
distribution:
1. the statement
#define SP sp
in pp.h leads to many compiler warnings, since a
system header contains the statement
#define SP SPE
(which solaris claims is "for compatibility"!).
changing the define to
#define SP_ sp
this change required replaceing the SP symbol in
pp.h pp.c pp_ctl.c
pp_hot.c pp_sys.c POSIX.c
with these changes, the compilation produces many
fewer complaints. however, no big change in
code behavior or foibles has resulted.
2. the old-style function definition for [...]findlex
confused my compiler, when compared with the new-
style header. changing the function definition to
new-style form has eliminated that complaint.
again no major change in code behavior.
a third bug is giving trouble, but I haven't found a fix, yet--
see the make output attached, with respect to the va_start()
argument mismatch.

as a fall-back work-around, i've tried to bring up perl4.036.
i didn't work on this too hard, but the initial pass was completely
unsuccessful. lots of failures on perl's own tests.

so that's the status. i can think of a few different ways you might
be able to help:
a. do you know of anyone who's successfully installed and
used perl on a solaris 2.4 or 2.4_x86 machine?
b. would you be willing to co-debug my installation?
c. do you have any helpful hints or hot suggestions for
how to proceed?
keep in mind that i'm a competent computer user/programmer, but
i'm a total neophyte in perl-dom, and am relatively inexperienced
in unix system matters.

thanks for your consideration. i know perl's of value, because
it's widely used. i hope i won't have to remain outside the
perl community!

sincerely,
bill mead
ansr, inc.

attached below:
1- ptst_local example
2- config.sh file
3- most recent "make" output
===========================================================================
attach. 1 ptst_local example ----------------------------------------------

the ptst_local perl script (I wrote this to demo the problem):
require("./set_cpu");
$cpu = &set_cpu;
print "cpu= $cpu"

the set_cpu script:

######################### set_cpu ########################################
# Zane C. Motteler June 6, 1994
# sets the variable $thiscpu to the number of whatever this platform is.
# it returns this value.
# global assumed:
# $basis--absolute path to a subdirectory which contains the program
# bin/cpu (frequently /usr/local/basis). bin/cpu prints out
# the name of the cpu on which it is running.
# locals assumed:
# $thiscpu--a character string which will be set to the value of
# the cpu on which we are running.
# $cpu_script--set to the full pathname of a program which prints out
# the name of the cpu on which it is running.
##########################################################################
sub set_cpu {
local ( $cpu_script ) = "$path" . "cpu" ; # "$basis/bin/cpu" ;
print "$cpu_script--\n" ;
local ( $thiscpu ) = `$cpu_script` ;
chop($thiscpu);
print " $thiscpu--\n";
return $thiscpu ;
} # end set_cpu
1;

running the example:
# first, run in the parent directory...
mahler% pwd
/export/home/wcm/basis103/dist
mahler% ls
BASIS_VERSION basinst.s01 ptst
Basis_Installation basinst.s02 ptst1.txt
Basis_Installation.orig basis ptst2.txt
CVS basis_install ptst3.txt
Copyright basis_install.orig ptst_local
README graphics scripts
READMEBIN library set_cpu
SOL man1 test_files
mahler% perl -d ptst_local

Loading DB routines from $RCSfile: perl5db.pl,v $$Revision: 4.1 $$Date: 92/08/07 18:24:07 $
Emacs support available.

Enter h for help.

main::(ptst_local:1): require("./set_cpu");
DB<1> s
main::(./set_cpu:21): 1;
DB<1> s
main::(ptst_local:2): $cpu = &set_cpu;
DB<1> s
main::set_cpu(./set_cpu:16): local ( $cpu_script ) = "$path" . "cpu" ; # "$basis/bin/cpu" ;
DB<1> s
main::set_cpu(./set_cpu:17): local ( $thiscpu ) = `$cpu_script` ;
DB<1> s
main::set_cpu(./set_cpu:18): chop($thiscpu);
DB<1> s
main::set_cpu(./set_cpu:19): return $thiscpu ;
DB<1> s
main::(ptst_local:3): print "cpu= $cpu"
DB<1> s
cpu=
# that's a dud: my $CPU environment variable is set to "SOL"

# but, running it just one directory level down, the script works:
mahler% cd scripts
mahler% ls
CVS boilerplate mac
Create_if_necessary config mmm
Fcc cpu process_command_line
Find_ourselves enum process_file
Makefile generify ptst_local
ReadInput get put
basisenv get_line putfiles
basisinstall get_nonblank_token set_cpu
basiskit getfiles transMMM
mahler% perl -d ptst_local

Loading DB routines from $RCSfile: perl5db.pl,v $$Revision: 4.1 $$Date: 92/08/07 18:24:07 $
Emacs support available.

Enter h for help.

main::(ptst_local:1): require("./set_cpu");
DB<1> s
main::(./set_cpu:21): 1;
DB<1> s
main::(ptst_local:2): $cpu = &set_cpu;
DB<1> s
main::set_cpu(./set_cpu:16): local ( $cpu_script ) = "$path" . "cpu" ; # "$basis/bin/cpu" ;
DB<1> s
main::set_cpu(./set_cpu:17): local ( $thiscpu ) = `$cpu_script` ;
DB<1> s
main::set_cpu(./set_cpu:18): chop($thiscpu);
DB<1> s
main::set_cpu(./set_cpu:19): return $thiscpu ;
DB<1> s
main::(ptst_local:3): print "cpu= $cpu"
DB<1> s
cpu= SOL
# got the right stuff!!??!!

Why would a script work ok in one subdirectory, and fail in another? i've checked
the value for $cpu_script and it is "cpu" in both cases.

attach. 2 config.sh -------------------------------------------------------
#!/bin/sh
#
# This file was produced by running the Configure script. It holds all the
# definitions figured out by Configure. Should you modify one of these values,
# do not forget to propagate your changes by running "Configure -der". You may
# instead choose to run each of the .SH files by yourself, or "Configure -S".
#

# Configuration time: Thu Aug 24 14:32:47 MDT 1995
# Configured by: wcm
# Target system: sunos mahler 5.4 generic_101946-12 i86pc i386
# Manually revised by wcm to reenable POSIX option

Author=''
Date='$Date'
Header=''
Id='$Id'
Locker=''
Log='$Log'
Mcc='Mcc'
RCSfile='$RCSfile'
Revision='$Revision'
Source=''
State=''
afs='false'
alignbytes='4'
aphostname=''
archlib='/usr/local/lib/perl5/i86pc-solaris'
archlibexp='/usr/local/lib/perl5/i86pc-solaris'
archname='i86pc-solaris'
awk='/usr/bin/awk'
baserev='5.0'
bash=''
bin='/usr/local/bin'
binexp='/usr/local/bin'
bison=''
byacc='byacc'
byteorder='1234'
c=''
castflags='0'
cat='/usr/bin/cat'
cc='cc'
cccdlflags=''
ccdlflags=''
ccflags=''
cf_by='wcm'
cf_time='Thu Aug 24 14:32:47 MDT 1995'
chgrp=''
chmod=''
chown=''
clocktype='clock_t'
comm='/usr/bin/comm'
compress=''
contains='grep'
cp='/usr/bin/cp'
cpio=''
cpp='cpp'
cpp_stuff='1'
cppflags=''
cpplast='-'
cppminus='-'
cpprun='cc -E'
cppstdin='cc -E'
cryptlib=''
csh='/usr/bin/csh'
d_Gconvert='gconvert((x),(n),(t),(b))'
d_access='define'
d_alarm='define'
d_archlib='define'
d_attribut='undef'
d_bcmp='define'
d_bcopy='define'
d_bsd='define'
d_bsdpgrp='undef'
d_byacc='undef'
d_bzero='define'
d_casti32='define'
d_castneg='define'
d_charvspr='define'
d_chown='define'
d_chroot='define'
d_chsize='undef'
d_closedir='define'
d_const='undef'
d_crypt='define'
d_csh='define'
d_cuserid='define'
d_dbl_dig='define'
d_difftime='define'
d_dirnamlen='undef'
d_dlerror='define'
d_dlopen='define'
d_dlsymun='undef'
d_dosuid='undef'
d_drem='define'
d_dup2='define'
d_eunice='undef'
d_fchmod='define'
d_fchown='define'
d_fcntl='define'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
d_fgetpos='define'
d_flexfnam='define'
d_flock='define'
d_fmod='define'
d_fork='define'
d_fpathconf='define'
d_fsetpos='define'
d_getgrps='define'
d_gethent='define'
d_gethname='undef'
d_getlogin='define'
d_getpgrp2='undef'
d_getpgrp='define'
d_getppid='define'
d_getprior='define'
d_htonl='define'
d_index='undef'
d_isascii='define'
d_killpg='define'
d_link='define'
d_linuxstd='undef'
d_locconv='define'
d_lockf='define'
d_lstat='define'
d_mblen='define'
d_mbstowcs='define'
d_mbtowc='define'
d_memcmp='define'
d_memcpy='define'
d_memmove='define'
d_memset='define'
d_mkdir='define'
d_mkfifo='define'
d_mktime='define'
d_msg='define'
d_msgctl='define'
d_msgget='define'
d_msgrcv='define'
d_msgsnd='define'
d_mymalloc='undef'
d_nice='define'
d_oldsock='undef'
d_open3='define'
d_pathconf='define'
d_pause='define'
d_phostname='undef'
d_pipe='define'
d_portable='undef'
d_pwage='define'
d_pwchange='undef'
d_pwclass='undef'
d_pwcomment='define'
d_pwexpire='undef'
d_pwquota='undef'
d_readdir='define'
d_readlink='define'
d_rename='define'
d_rewinddir='define'
d_rmdir='define'
d_safebcpy='define'
d_safemcpy='undef'
d_seekdir='define'
d_select='define'
d_sem='define'
d_semctl='define'
d_semget='define'
d_semop='define'
d_setegid='define'
d_seteuid='define'
d_setlinebuf='define'
d_setlocale='define'
d_setpgid='define'
d_setpgrp2='undef'
d_setpgrp='define'
d_setprior='define'
d_setregid='define'
d_setresgid='undef'
d_setresuid='undef'
d_setreuid='define'
d_setrgid='undef'
d_setruid='undef'
d_setsid='define'
d_shm='define'
d_shmat='define'
d_shmatprototype='define'
d_shmctl='define'
d_shmdt='define'
d_shmget='define'
d_shrplib='undef'
d_socket='define'
d_sockpair='define'
d_statblks='define'
d_stdstdio='define'
d_strchr='define'
d_strcoll='define'
d_strctcpy='define'
d_strerrm='strerror(e)'
d_strerror='define'
d_strxfrm='define'
d_suidsafe='define'
d_symlink='define'
d_syscall='define'
d_sysconf='define'
d_sysernlst=''
d_syserrlst='define'
d_system='define'
d_tcgetpgrp='define'
d_tcsetpgrp='define'
d_telldir='define'
d_time='define'
d_times='define'
d_truncate='define'
d_tzname='define'
d_umask='define'
d_uname='define'
d_vfork='undef'
d_void_closedir='undef'
d_voidsig='define'
d_voidtty=''
d_volatile='undef'
d_vprintf='define'
d_wait4='define'
d_waitpid='define'
d_wcstombs='define'
d_wctomb='define'
d_xenix='undef'
date='/usr/bin/date'
db_hashtype='int'
db_prefixtype='int'
defvoidused='15'
direntrytype='struct dirent'
dlext='none'
dlsrc='dl_none.xs'
dynamic_ext=''
echo='/usr/ucb/echo'
egrep='/usr/bin/egrep'
emacs=''
eunicefix=':'
expr='/usr/ucb/expr'
extensions='Fcntl NDBM_File ODBM_File SDBM_File Socket'
find='/usr/bin/find'
flex=''
fpostype='fpos_t'
freetype='void'
full_csh='/usr/bin/csh'
full_sed='/usr/ucb/sed'
gcc=''
gccversion=''
gidtype='gid_t'
glibpth='/usr/shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/local/lib'
grep='/usr/bin/grep'
groupcat=''
groupstype='gid_t'
h_fcntl='false'
h_sysfile='true'
hint='previous'
hostcat=''
huge=''
i_bsdioctl=''
i_db='undef'
i_dbm='define'
i_dirent='define'
i_dld='undef'
i_dlfcn='define'
i_fcntl='undef'
i_float='define'
i_gdbm='undef'
i_grp='define'
i_limits='define'
i_malloc='define'
i_math='define'
i_memory='undef'
i_ndbm='define'
i_neterrno='undef'
i_niin='define'
i_pwd='define'
i_sgtty='undef'
i_stdarg='define'
i_stddef='define'
i_stdlib='define'
i_string='define'
i_sysdir='define'
i_sysfile='define'
i_sysfilio='define'
i_sysin='undef'
i_sysioctl='define'
i_sysndir='undef'
i_sysparam='define'
i_sysselct='define'
i_syssockio=''
i_sysstat='define'
i_systime='define'
i_systimek='undef'
i_systimes='define'
i_systypes='define'
i_termio='undef'
i_termios='define'
i_time='undef'
i_unistd='define'
i_utime='define'
i_varargs='undef'
i_varhdr='stdarg.h'
i_vfork='undef'
incpath=''
inews=''
installarchlib='/usr/local/lib/perl5/i86pc-solaris'
installbin='/usr/local/bin'
installmansrc='/usr/local/man/man1'
installprivlib='/usr/local/lib/perl5'
installscript='/usr/local/bin'
intsize='4'
known_extensions='DB_File Fcntl GDBM_File NDBM_File ODBM_File POSIX SDBM_File Socket'
ksh=''
large=''
lddlflags=''
ldflags=''
less=''
libc=''
libpth='/lib /usr/lib /usr/ccs/lib /usr/local/lib /usr/dt/lib /usr/ucb'
libs='-lsocket -lnsl -ldl -lm -lc -lcrypt -lgen -lucb'
libswanted='net socket inet nsl nm ndbm gdbm dbm db dl dld sun m c cposix posix ndir dir crypt bsd PW x'
line='/usr/bin/line'
lint=''
lkflags=''
ln='/usr/ucb/ln'
lns='/usr/ucb/ln -s'
lp=''
lpr=''
ls='/usr/ucb/ls'
lseektype='off_t'
mail=''
mailx=''
make=''
mallocobj=''
mallocsrc=''
malloctype='void *'
manext='1'
mansrc='/usr/local/man/man1'
mansrcexp='/usr/local/man/man1'
medium=''
mips=''
mips_type=''
mkdir='/usr/bin/mkdir'
models='none'
modetype='mode_t'
more=''
mv=''
myarchname='i86pc-solaris'
mydomain=''
myhostname='mahler'
myuname='sunos mahler 5.4 generic_101946-12 i86pc i386 '
n='-n'
nm_opt='-p'
nroff='/usr/bin/nroff'
optimize='-O'
orderlib='false'
osname='solaris'
osvers='2.4'
package='perl5'
passcat=''
patchlevel='1'
perl='/usr/local/bin/perl'
pg=''
phostname='hostname'
plibpth=''
pmake=''
pr=''
prefix='/usr/local'
prefixexp='/usr/local'
privlib='/usr/local/lib/perl5'
privlibexp='/usr/local/lib/perl5'
prototype='define'
randbits='15'
ranlib=':'
rm='/usr/bin/rm'
rmail=''
runnm='false'
scriptdir='/usr/local/bin'
scriptdirexp='/usr/local/bin'
sed='/usr/ucb/sed'
selecttype='fd_set *'
sendmail=''
sh=''
shar=''
sharpbang='#!'
shmattype='void *'
shrpdir='none'
shsharp='true'
sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG POLL STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ WAITING LWP FREEZE THAW'
signal_t='void'
sizetype='size_t'
sleep=''
smail=''
small=''
so='so'
sockethdr=''
socketlib=''
sort='/usr/bin/sort'
spackage='Perl5'
spitshell='cat'
split=''
ssizetype='ssize_t'
startsh='#!/bin/sh'
static_ext='Fcntl NDBM_File ODBM_File POSIX SDBM_File Socket'
stdchar='unsigned char'
strings='/usr/include/string.h'
submit=''
sysman='/usr/man/man1'
tail=''
tar=''
tbl=''
test='test'
timeincl='/usr/include/sys/time.h '
timetype='time_t'
touch='/usr/ucb/touch'
tr='/usr/ucb/tr'
troff=''
uidtype='uid_t'
uname='/usr/bin/uname'
uniq='/usr/bin/uniq'
usedl='undef'
usemymalloc='n'
usenm='false'
useposix='true'
usevfork='false'
usrinc='/usr/include'
uuname=''
vi=''
voidflags='15'
xlibpth='/usr/lib/386 /lib/386'
zcat=''
PATCHLEVEL=1
CONFIG=true


attach. 3 make output -----------------------------------------------------
make:
pwd
/export/home/wcm/src/gnu/perl/perl5.001/perl5.001
mahler% date
Fri Aug 25 03:48:47 MDT 1995
mahler% make depend
make: Warning: Both `makefile' and `Makefile' exist
test -f perly.h || cp /dev/null perly.h
./makedepend
make: Warning: Both `makefile' and `Makefile' exist
Current working directory /export/home/wcm/src/gnu/perl/perl5.001/perl5.001
sh writemain lib/auto/DynaLoader/DynaLoader.a lib/auto/Fcntl/Fcntl.a lib/auto/NDBM_File/NDBM_File.a lib/auto/ODBM_File/ODBM_File.a lib/auto/POSIX/POSIX.a lib/auto/SDBM_File/SDBM_File.a lib/auto/Socket/Socket.a > tmp
sh mv-if-diff tmp perlmain.c
echo av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c gv.c sv.c taint.c toke.c util.c deb.c run.c globals.c miniperlmain.c perlmain.c | tr ' ' '\012' >.clist
Finding dependencies for av.o.
Finding dependencies for scope.o.
Finding dependencies for op.o.
Finding dependencies for doop.o.
Finding dependencies for doio.o.
Finding dependencies for dump.o.
Finding dependencies for hv.o.
Finding dependencies for mg.o.
Finding dependencies for perl.o.
Finding dependencies for perly.o.
Finding dependencies for pp.o.
Finding dependencies for pp_hot.o.
Finding dependencies for pp_ctl.o.
Finding dependencies for pp_sys.o.
Finding dependencies for regcomp.o.
Finding dependencies for regexec.o.
Finding dependencies for gv.o.
Finding dependencies for sv.o.
Finding dependencies for taint.o.
Finding dependencies for toke.o.
Finding dependencies for util.o.
Finding dependencies for deb.o.
Finding dependencies for run.o.
Finding dependencies for globals.o.
Finding dependencies for miniperlmain.o.
Finding dependencies for perlmain.o.
make: Warning: Both `makefile' and `Makefile' exist
Current working directory /export/home/wcm/src/gnu/perl/perl5.001/perl5.001
echo Makefile.SH cflags.SH makedepend.SH makedir.SH writemain.SH | tr ' ' '\012' >.shlist
Updating makefile...
test -s perly.h || /bin/rm -f perly.h
test -s perlmain.c && touch perlmain.c
cd x2p; make depend
make: Warning: Both `makefile' and `Makefile' exist
Current working directory /export/home/wcm/src/gnu/perl/perl5.001/perl5.001/x2p
../makedepend
make: Warning: Both `makefile' and `Makefile' exist
Current working directory /export/home/wcm/src/gnu/perl/perl5.001/perl5.001/x2p
echo hash.c str.c util.c walk.c | tr ' ' '\012' >.clist
Finding dependencies for hash.o.
Finding dependencies for str.o.
Finding dependencies for util.o.
Finding dependencies for walk.o.
make: Warning: Both `makefile' and `Makefile' exist
Current working directory /export/home/wcm/src/gnu/perl/perl5.001/perl5.001/x2p
echo Makefile.SH cflags.SH find2perl.SH s2p.SH | tr ' ' '\012' >.shlist
Updating makefile...
mahler% su
Password:
mahler# make
make: Warning: Both `makefile' and `Makefile' exist
`sh cflags libperl.a miniperlmain.o` miniperlmain.c
CCCMD = cc -c -O
`sh cflags libperl.a perl.o` perl.c
CCCMD = cc -c -O
`sh cflags libperl.a gv.o` gv.c
CCCMD = cc -c -O
`sh cflags libperl.a toke.o` toke.c
CCCMD = cc -c -O
`sh cflags libperl.a perly.o` perly.c
CCCMD = cc -c -O
`sh cflags libperl.a op.o` op.c
CCCMD = cc -c -O
`sh cflags libperl.a regcomp.o` regcomp.c
CCCMD = cc -c -O
`sh cflags libperl.a dump.o` dump.c
CCCMD = cc -c -O
`sh cflags libperl.a util.o` util.c
CCCMD = cc -c -O
"util.c", line 895: va_start: argument mismatch
"util.c", line 943: va_start: argument mismatch
`sh cflags libperl.a mg.o` mg.c
CCCMD = cc -c -O
`sh cflags libperl.a hv.o` hv.c
CCCMD = cc -c -O
`sh cflags libperl.a av.o` av.c
CCCMD = cc -c -O
`sh cflags libperl.a run.o` run.c
CCCMD = cc -c -O
`sh cflags libperl.a pp_hot.o` pp_hot.c
CCCMD = cc -c -O
`sh cflags libperl.a sv.o` sv.c
CCCMD = cc -c -O
`sh cflags libperl.a pp.o` pp.c
CCCMD = cc -c -O
`sh cflags libperl.a scope.o` scope.c
CCCMD = cc -c -O
`sh cflags libperl.a pp_ctl.o` pp_ctl.c
CCCMD = cc -c -O
"pp_ctl.c", line 899: va_start: argument mismatch
`sh cflags libperl.a pp_sys.o` pp_sys.c
CCCMD = cc -c -O
`sh cflags libperl.a doop.o` doop.c
CCCMD = cc -c -O
`sh cflags libperl.a doio.o` doio.c
CCCMD = cc -c -O
`sh cflags libperl.a regexec.o` regexec.c
CCCMD = cc -c -O
`sh cflags libperl.a taint.o` taint.c
CCCMD = cc -c -O
`sh cflags libperl.a deb.o` deb.c
CCCMD = cc -c -O
`sh cflags libperl.a globals.o` globals.c
CCCMD = cc -c -O
ar rcu libperl.a perl.o gv.o toke.o perly.o op.o regcomp.o dump.o util.o mg.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o taint.o deb.o globals.o
cc -o miniperl miniperlmain.o libperl.a -lsocket -lnsl -ldl -lm -lc -lcrypt -lgen -lucb
ld: warning: symbol `dc' has differing sizes:
(file libperl.a(globals.o) value=0x4; file /usr/ucblib/libucb.so value=0x108);
libperl.a(globals.o) definition taken and updated with larger size
./miniperl configpm tmp
sh mv-if-diff tmp lib/Config.pm
File lib/Config.pm not changed.
AutoSplitting perl library
./miniperl minimod.PL > tmp && mv tmp lib/ExtUtils/Miniperl.pm
`sh cflags libperl.a perlmain.o` perlmain.c
CCCMD = cc -c -O

Making DynaLoader (static)
Writing Makefile for DynaLoader
../../miniperl ../../lib/ExtUtils/xsubpp -typemap ../../lib/ExtUtils/typemap dl_none.xs >tmp && mv tmp DynaLoader.c
cc -c -O -I../.. -DLIBC="" DynaLoader.c
ar cr ../../lib/auto/DynaLoader/DynaLoader.a DynaLoader.o && : ../../lib/auto/DynaLoader/DynaLoader.a
cp DynaLoader.pm ../../lib/DynaLoader.pm
AutoSplitting DynaLoader (../../lib/auto/DynaLoader)

Making Fcntl (static)
Writing Makefile for Fcntl
../../miniperl ../../lib/ExtUtils/xsubpp -typemap ../../lib/ExtUtils/typemap Fcntl.xs >Fcntl.tc && mv Fcntl.tc Fcntl.c
cc -c -O -I../.. Fcntl.c
ar cr ../../lib/auto/Fcntl/Fcntl.a Fcntl.o && : ../../lib/auto/Fcntl/Fcntl.a
cp Fcntl.pm ../../lib/Fcntl.pm
AutoSplitting Fcntl (../../lib/auto/Fcntl)

Making NDBM_File (static)
Writing Makefile for NDBM_File
Warning (non-fatal): No library found for -lndbm
Warning (non-fatal): No library found for -ldbm
../../miniperl ../../lib/ExtUtils/xsubpp -typemap ../../lib/ExtUtils/typemap -typemap typemap NDBM_File.xs >NDBM_File.tc && mv NDBM_File.tc NDBM_File.c
cc -c -O -I../.. NDBM_File.c
ar cr ../../lib/auto/NDBM_File/NDBM_File.a NDBM_File.o && : ../../lib/auto/NDBM_File/NDBM_File.a
cp NDBM_File.pm ../../lib/NDBM_File.pm

Making ODBM_File (static)
Writing Makefile for ODBM_File
Warning (non-fatal): No library found for -ldbm.nfs
Warning (non-fatal): No library found for -ldbm
../../miniperl ../../lib/ExtUtils/xsubpp -typemap ../../lib/ExtUtils/typemap -typemap typemap ODBM_File.xs >ODBM_File.tc && mv ODBM_File.tc ODBM_File.c
cc -c -O -I../.. ODBM_File.c
ar cr ../../lib/auto/ODBM_File/ODBM_File.a ODBM_File.o && : ../../lib/auto/ODBM_File/ODBM_File.a
cp ODBM_File.pm ../../lib/ODBM_File.pm

Making POSIX (static)
Writing Makefile for POSIX
Warning (non-fatal): No library found for -lposix
Warning (non-fatal): No library found for -lcposix
../../miniperl ../../lib/ExtUtils/xsubpp -typemap ../../lib/ExtUtils/typemap -typemap typemap POSIX.xs >POSIX.tc && mv POSIX.tc POSIX.c
cc -c -O -I../.. POSIX.c
"/usr/include/sys/termios.h", line 32: macro CTRL redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 65
"/usr/include/sys/termios.h", line 150: macro CINTR redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 71
"/usr/include/sys/termios.h", line 153: macro CKILL redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 70
"/usr/include/sys/termios.h", line 154: macro CEOT redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 76
"/usr/include/sys/termios.h", line 157: macro CEOF redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 75
"/usr/include/sys/termios.h", line 158: macro CSTART redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 73
"/usr/include/sys/termios.h", line 159: macro CSTOP redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 74
"/usr/include/sys/termios.h", line 162: macro CSUSP redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 78
"/usr/include/sys/termios.h", line 163: macro CDSUSP redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 79
"/usr/include/sys/termios.h", line 164: macro CRPRNT redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 80
"/usr/include/sys/termios.h", line 165: macro CFLUSH redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 81
"/usr/include/sys/termios.h", line 166: macro CWERASE redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 82
"/usr/include/sys/termios.h", line 167: macro CLNEXT redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 83
"/usr/include/sys/termios.h", line 209: macro NL0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 84
"/usr/include/sys/termios.h", line 210: macro NL1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 85
"/usr/include/sys/termios.h", line 212: macro CR0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 94
"/usr/include/sys/termios.h", line 213: macro CR1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 95
"/usr/include/sys/termios.h", line 214: macro CR2 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 96
"/usr/include/sys/termios.h", line 215: macro CR3 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 97
"/usr/include/sys/termios.h", line 217: macro TAB0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 89
"/usr/include/sys/termios.h", line 218: macro TAB1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 90
"/usr/include/sys/termios.h", line 219: macro TAB2 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 91
"/usr/include/sys/termios.h", line 224: macro XTABS redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 92
"/usr/include/sys/termios.h", line 229: macro BS0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 102
"/usr/include/sys/termios.h", line 230: macro BS1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 103
"/usr/include/sys/termios.h", line 235: macro FF0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 99
"/usr/include/sys/termios.h", line 236: macro FF1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 100
"/usr/include/sys/termios.h", line 275: macro ECHO redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 77
"/usr/include/sys/termios.h", line 279: macro NOFLSH redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 121
"/usr/include/sys/termios.h", line 280: macro TOSTOP redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 112
"/usr/include/sys/termios.h", line 287: macro FLUSHO redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 113
"/usr/include/sys/termios.h", line 288: macro PENDIN redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 119
"POSIX.c", line 2918: warning: improper pointer/integer combination: op "="
"POSIX.c", line 3507: left operand must be modifiable lvalue: op "-="
"POSIX.c", line 3560: left operand must be modifiable lvalue: op "-="
"POSIX.c", line 3952: left operand must be modifiable lvalue: op "-="
"POSIX.c", line 4126: left operand must be modifiable lvalue: op "-="
"POSIX.c", line 4181: warning: improper pointer/integer combination: op "="
"POSIX.c", line 4694: left operand must be modifiable lvalue: op "-="
cc: acomp failed for POSIX.c
*** Error code 1
make: Fatal error: Command failed for target `POSIX.o'
Current working directory /export/home/wcm/src/gnu/perl/perl5.001/perl5.001/ext/POSIX
*** Error code 1
make: Fatal error: Command failed for target `lib/auto/POSIX/POSIX.a'
mahler# cd ext
mahler# cd POSIX
mahler# ls Po*
No match
mahler# ls PO*
POSIX.c POSIX.c.fix.s01 POSIX.pm
POSIX.c% POSIX.c.orig POSIX.xs
mahler# cp -p POSIX.c.fix.s01 POSIX.c
mahler# cd ..
mahler# cd ..
mahler# make
make: Warning: Both `makefile' and `Makefile' exist
./miniperl configpm tmp
sh mv-if-diff tmp lib/Config.pm
File lib/Config.pm not changed.
AutoSplitting perl library

Making DynaLoader (static)

Making Fcntl (static)

Making NDBM_File (static)

Making ODBM_File (static)

Making POSIX (static)
cc -c -O -I../.. POSIX.c
"/usr/include/sys/termios.h", line 32: macro CTRL redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 65
"/usr/include/sys/termios.h", line 150: macro CINTR redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 71
"/usr/include/sys/termios.h", line 153: macro CKILL redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 70
"/usr/include/sys/termios.h", line 154: macro CEOT redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 76
"/usr/include/sys/termios.h", line 157: macro CEOF redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 75
"/usr/include/sys/termios.h", line 158: macro CSTART redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 73
"/usr/include/sys/termios.h", line 159: macro CSTOP redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 74
"/usr/include/sys/termios.h", line 162: macro CSUSP redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 78
"/usr/include/sys/termios.h", line 163: macro CDSUSP redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 79
"/usr/include/sys/termios.h", line 164: macro CRPRNT redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 80
"/usr/include/sys/termios.h", line 165: macro CFLUSH redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 81
"/usr/include/sys/termios.h", line 166: macro CWERASE redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 82
"/usr/include/sys/termios.h", line 167: macro CLNEXT redefines previous macro at "/usr/ucbinclude/sys/ttychars.h", line 83
"/usr/include/sys/termios.h", line 209: macro NL0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 84
"/usr/include/sys/termios.h", line 210: macro NL1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 85
"/usr/include/sys/termios.h", line 212: macro CR0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 94
"/usr/include/sys/termios.h", line 213: macro CR1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 95
"/usr/include/sys/termios.h", line 214: macro CR2 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 96
"/usr/include/sys/termios.h", line 215: macro CR3 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 97
"/usr/include/sys/termios.h", line 217: macro TAB0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 89
"/usr/include/sys/termios.h", line 218: macro TAB1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 90
"/usr/include/sys/termios.h", line 219: macro TAB2 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 91
"/usr/include/sys/termios.h", line 224: macro XTABS redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 92
"/usr/include/sys/termios.h", line 229: macro BS0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 102
"/usr/include/sys/termios.h", line 230: macro BS1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 103
"/usr/include/sys/termios.h", line 235: macro FF0 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 99
"/usr/include/sys/termios.h", line 236: macro FF1 redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 100
"/usr/include/sys/termios.h", line 275: macro ECHO redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 77
"/usr/include/sys/termios.h", line 279: macro NOFLSH redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 121
"/usr/include/sys/termios.h", line 280: macro TOSTOP redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 112
"/usr/include/sys/termios.h", line 287: macro FLUSHO redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 113
"/usr/include/sys/termios.h", line 288: macro PENDIN redefines previous macro at "/usr/ucbinclude/sys/ioctl.h", line 119
"POSIX.c", line 2918: warning: improper pointer/integer combination: op "="
"POSIX.c", line 4181: warning: improper pointer/integer combination: op "="
ar cr ../../lib/auto/POSIX/POSIX.a POSIX.o && : ../../lib/auto/POSIX/POSIX.a
cp POSIX.pm ../../lib/POSIX.pm
AutoSplitting POSIX (../../lib/auto/POSIX)

Making SDBM_File (static)
Writing Makefile for SDBM_File
Rebuilding sdbm/Makefile ...
../../miniperl -I../../lib \
-e "use ExtUtils::MakeMaker; MM->runsubdirpl(qw(sdbm))" \
INST_LIB=../../lib INST_ARCHLIB=../../lib \
INST_EXE=./blib LINKTYPE=\static LIBPERL_A=libperl.a
Subroutine mkbootstrap redefined at Makefile.PL line 1
Subroutine mksymlists redefined at Makefile.PL line 1
Writing Makefile for SDBM_File::sdbm
Rebuild of sdbm/Makefile complete.
cd sdbm ; make config INST_LIB=../../lib INST_ARCHLIB=../../lib \
INST_EXE=./blib LINKTYPE=static LIBPERL_A=libperl.a
cd sdbm ; make config INST_LIB=../../lib INST_ARCHLIB=../../lib \
INST_EXE=./blib LINKTYPE=static LIBPERL_A=libperl.a
../../miniperl ../../lib/ExtUtils/xsubpp -typemap ../../lib/ExtUtils/typemap -typemap typemap SDBM_File.xs >SDBM_File.tc && mv SDBM_File.tc SDBM_File.c
cc -c -O -I../.. SDBM_File.c
cd sdbm; make all
cc -c -O -I../../.. -DSDBM -DDUFF sdbm.c
cc -c -O -I../../.. -DSDBM -DDUFF pair.c
cc -c -O -I../../.. -DSDBM -DDUFF hash.c
ar cr libsdbm.a sdbm.o pair.o hash.o
: libsdbm.a
cp sdbm/libsdbm.a ../../lib/auto/SDBM_File/SDBM_File.a
ar cr ../../lib/auto/SDBM_File/SDBM_File.a SDBM_File.o && : ../../lib/auto/SDBM_File/SDBM_File.a
cp SDBM_File.pm ../../lib/SDBM_File.pm
cd sdbm ; make all LINKTYPE=static

Making Socket (static)
Writing Makefile for Socket
../../miniperl ../../lib/ExtUtils/xsubpp -typemap ../../lib/ExtUtils/typemap Socket.xs >Socket.tc && mv Socket.tc Socket.c
cc -c -O -I../.. Socket.c
ar cr ../../lib/auto/Socket/Socket.a Socket.o && : ../../lib/auto/Socket/Socket.a
cp Socket.pm ../../lib/Socket.pm
AutoSplitting Socket (../../lib/auto/Socket)
cc -o perl perlmain.o libperl.a lib/auto/DynaLoader/DynaLoader.a lib/auto/Fcntl/Fcntl.a lib/auto/NDBM_File/NDBM_File.a lib/auto/ODBM_File/ODBM_File.a lib/auto/POSIX/POSIX.a lib/auto/SDBM_File/SDBM_File.a lib/auto/Socket/Socket.a `cat ext.libs` -lsocket -lnsl -ldl -lm -lc -lcrypt -lgen -lucb
ld: warning: symbol `dc' has differing sizes:
(file libperl.a(globals.o) value=0x4; file /usr/ucblib/libucb.so value=0x108);
libperl.a(globals.o) definition taken and updated with larger size

Making x2p stuff
make: Warning: Both `makefile' and `Makefile' exist
Current working directory /export/home/wcm/src/gnu/perl/perl5.001/perl5.001/x2p
`sh cflags hash.o` hash.c
CCCMD = cc -c -O
`sh cflags str.o` str.c
CCCMD = cc -c -O
`sh cflags util.o` util.c
CCCMD = cc -c -O
`sh cflags walk.o` walk.c
CCCMD = cc -c -O
`sh cflags a2p.o` a2p.c
CCCMD = cc -c -O
cc hash.o str.o util.o walk.o a2p.o -lsocket -lnsl -ldl -lm -lc -lcrypt -lgen -lucb -o a2p
touch all

Making docs
../miniperl pod2man perl.pod >perl.man
../miniperl pod2man perlapi.pod >perlapi.man
../miniperl pod2man perlbook.pod >perlbook.man
../miniperl pod2man perlbot.pod >perlbot.man
../miniperl pod2man perlcall.pod >perlcall.man
../miniperl pod2man perldata.pod >perldata.man
../miniperl pod2man perldebug.pod >perldebug.man
../miniperl pod2man perldiag.pod >perldiag.man
../miniperl pod2man perlembed.pod >perlembed.man
../miniperl pod2man perlform.pod >perlform.man
../miniperl pod2man perlfunc.pod >perlfunc.man
../miniperl pod2man perlguts.pod >perlguts.man
../miniperl pod2man perlipc.pod >perlipc.man
../miniperl pod2man perlmod.pod >perlmod.man
../miniperl pod2man perlobj.pod >perlobj.man
../miniperl pod2man perlop.pod >perlop.man
../miniperl pod2man perlovl.pod >perlovl.man
../miniperl pod2man perlpod.pod >perlpod.man
../miniperl pod2man perlre.pod >perlre.man
../miniperl pod2man perlref.pod >perlref.man
../miniperl pod2man perlrun.pod >perlrun.man
../miniperl pod2man perlsec.pod >perlsec.man
../miniperl pod2man perlstyle.pod >perlstyle.man
../miniperl pod2man perlsub.pod >perlsub.man
../miniperl pod2man perlsyn.pod >perlsyn.man
../miniperl pod2man perltrap.pod >perltrap.man
../miniperl pod2man perlvar.pod >perlvar.man
mahler#

make test output:

mahler# pwd
/export/home/wcm/src/gnu/perl/perl5.001/perl5.001
mahler# date
Fri Aug 25 04:04:48 MDT 1995
mahler# make test
make: Warning: Both `makefile' and `Makefile' exist
./miniperl configpm tmp
sh mv-if-diff tmp lib/Config.pm
File lib/Config.pm not changed.
AutoSplitting perl library

Making DynaLoader (static)

Making Fcntl (static)

Making NDBM_File (static)

Making ODBM_File (static)

Making POSIX (static)

Making SDBM_File (static)
cd sdbm ; make config INST_LIB=../../lib INST_ARCHLIB=../../lib \
INST_EXE=./blib LINKTYPE=static LIBPERL_A=libperl.a
cd sdbm ; make config INST_LIB=../../lib INST_ARCHLIB=../../lib \
INST_EXE=./blib LINKTYPE=static LIBPERL_A=libperl.a
cd sdbm ; make all LINKTYPE=static

Making Socket (static)
cd t && chmod +x TEST */*.t
cd t && (rm -f perl; /usr/ucb/ln -s ../perl perl) && ./perl TEST </dev/tty
base/cond......ok
base/if........ok
base/lex.......ok
base/pat.......ok
base/term......ok
comp/cmdopt....ok
comp/cpp.......ok
comp/decl......ok
comp/multiline.ok
comp/package...ok
comp/script....ok
comp/term......ok
cmd/elsif......ok
cmd/for........ok
cmd/mod........ok
cmd/subval.....ok
cmd/switch.....ok
cmd/while......ok
io/argv........ok
io/dup.........ok
io/fs..........ok
io/inplace.....ok
io/pipe........ok
io/print.......ok
io/tell........ok
op/append......ok
op/array.......ok
op/auto........ok
op/chop........ok
op/cond........ok
op/delete......ok
op/do..........ok
op/each........ok
op/eval........ok
op/exec........ok
op/exp.........ok
op/flip........ok
op/fork........ok
op/glob........ok
op/goto........ok
op/groups......ok
op/index.......ok
op/int.........ok
op/join........ok
op/list........ok
op/local.......ok
op/magic.......ok
op/misc........ok
op/mkdir.......ok
op/my..........ok
op/oct.........ok
op/ord.........ok
op/overload....ok
op/pack........ok
op/pat.........ok
op/push........ok
op/quotemeta...ok
op/rand........ok
op/range.......ok
op/read........ok
op/readdir.....ok
op/ref.........ok
op/regexp......ok
op/repeat......ok
op/sleep.......ok
op/sort........ok
op/split.......ok
op/sprintf.....ok
op/stat........ok
op/study.......ok
op/subst.......ok
op/substr......ok
op/time........ok
op/undef.......ok
op/unshift.....ok
op/vec.........ok
op/write.......ok
lib/anydbm.....ok
lib/bigint.....ok
lib/bigintpm...ok
lib/db-btree...ok
lib/db-hash....ok
lib/db-recno...ok
lib/english....ok
lib/gdbm.......ok
lib/ndbm.......ok
lib/odbm.......ok
lib/posix......1..0
FAILED on test 0
lib/sdbm.......ok
lib/soundex....ok
Failed 1 test, 98.89% okay.
u=1.06 s=2.55 cu=19.48 cs=30.88 files=89 tests=1915
mahler#

======================== end of message ===================================
Re: solaris 2.4 x86 trubls [ In reply to ]
William Mead writes:
> > i did identify and fix two small (?) bugs in the perl 5.001
> distribution:
> 1. the statement
> #define SP sp
> in pp.h leads to many compiler warnings, since a
> system header contains the statement
> #define SP SPE
> (which solaris claims is "for compatibility"!).
> changing the define to
> #define SP_ sp
> this change required replaceing the SP symbol in
> pp.h pp.c pp_ctl.c
> pp_hot.c pp_sys.c POSIX.c
> with these changes, the compilation produces many
> fewer complaints. however, no big change in
> code behavior or foibles has resulted.

No such problem on Sparc. Which header file? Anyway, a better fix is
to undef SP if it is defined. This can go into standard distrib.

> 2. the old-style function definition for [...]findlex
> confused my compiler, when compared with the new-
> style header. changing the function definition to
> new-style form has eliminated that complaint.
> again no major change in code behavior.

Answered in a different message.

> a. do you know of anyone who's successfully installed and
> used perl on a solaris 2.4 or 2.4_x86 machine?

Interesting question. I think 10**4 and 10*5 are good estimates for
Sparc.

> # but, running it just one directory level down, the script works:
> mahler% cd scripts
> mahler% ls
> CVS boilerplate mac
> Create_if_necessary config mmm
> Fcc cpu process_command_line
^^^^!!!!!
> Find_ourselves enum process_file
> Makefile generify ptst_local
> ReadInput get put
> basisenv get_line putfiles
> basisinstall get_nonblank_token set_cpu
> basiskit getfiles transMMM

> Why would a script work ok in one subdirectory, and fail in another? i've checked
> the value for $cpu_script and it is "cpu" in both cases.
>

See above.

Ilya