perl 3.0 beta to gamma upgrade kit [1/4]
Larry Wall
lwall at jato.Jpl.Nasa.Gov
Sat Sep 16 10:04:20 AEST 1989
Apply these to a virgin perl 3.0 beta directory to produce a perl 3.0 gamma
directory. Recommended patch switches are -p1 -N.
Larry Wall
lwall at jpl-devvax.jpl.nasa.gov
diff -c -r beta/Changes gamma/Changes
*** beta/Changes Fri Sep 15 16:07:33 1989
--- gamma/Changes Fri Sep 15 16:12:06 1989
***************
*** 11,17 ****
You can now write packages with their own namespace.
! You can now pass arrays and such to subroutines by reference.
The debugger now has hooks in the perl parser so it doesn't get confused.
The debugger won't interfere with stdin and stdout. New debugger commands:
--- 11,17 ----
You can now write packages with their own namespace.
! You can now pass things to subroutines by reference.
The debugger now has hooks in the perl parser so it doesn't get confused.
The debugger won't interfere with stdin and stdout. New debugger commands:
***************
*** 119,124 ****
--- 119,137 ----
or
shift(@ary); push(@ary,<>);
+ The shift operator used inside subroutines now defaults to shifting
+ the @_ array. You can still shift ARGV explicitly, of course.
+
+ The @_ array which is passed to subroutines is a local array, but the
+ elements of it are passed by reference now. This means that if you
+ explicitly modify $_[0], you are actually modifying the first argument
+ to the routine. Assignment to another location (such as the usual
+ local($foo) = @_ trick) causes a copy of the value, so this will not
+ affect most scripts. However, if you've modified @_ values in the
+ subroutine you could be in for a surprise. I don't believe most people
+ will find this a problem, and the long term efficiency gain is worth
+ a little confusion.
+
Perl now detects sequences of references to the same variable and builds
switch statements internally wherever reasonable.
***************
*** 175,180 ****
--- 188,221 ----
vec - treat string as a vector of small integers
fileno - return the file descriptor for a handle
wantarray - was subroutine called in array context?
+ opendir
+ readdir
+ telldir
+ seekdir
+ rewinddir
+ closedir
+ syscall
+ socket
+ bind
+ connect
+ listen
+ accept
+ shutdown
+ socketpair
+ getsockname
+ getpeername
+ getsockopt
+ setsockopt
+ getpwnam
+ getpwuid
+ getpwent
+ setpwent
+ endpwent
+ getgrnam
+ getgrgid
+ getgrent
+ setgrent
+ endgrent
gethostbyname
gethostbyaddr
gethostent
***************
*** 195,201 ****
getservent
setservent
endservent
-
Changes to s2p
--------------
--- 236,241 ----
diff -c -r beta/Configure gamma/Configure
*** beta/Configure Fri Sep 15 16:05:38 1989
--- gamma/Configure Fri Sep 15 16:09:55 1989
***************
*** 67,72 ****
--- 67,96 ----
mail=''
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=''
Log=''
Header=''
bin=''
***************
*** 74,88 ****
--- 98,116 ----
contains=''
cppstdin=''
cppminus=''
+ d_bcmp=''
d_bcopy=''
d_charsprf=''
d_crypt=''
+ cryptlib=''
d_dosuid=''
+ d_dup2=''
d_fchmod=''
d_fchown=''
d_fcntl=''
d_flock=''
d_getgrps=''
+ d_gethent=''
d_getpgrp=''
d_getprior=''
d_htonl=''
***************
*** 89,98 ****
--- 117,128 ----
d_index=''
d_ioctl=''
d_killpg=''
+ d_memcmp=''
d_memcpy=''
d_mkdir=''
d_ndbm=''
d_odbm=''
+ d_readdir=''
d_rename=''
d_rmdir=''
d_setegid=''
***************
*** 104,109 ****
--- 134,140 ----
d_setrgid=''
d_setruid=''
d_socket=''
+ d_sockpair=''
d_oldsock=''
socketlib=''
sockethdr=''
***************
*** 111,116 ****
--- 142,148 ----
d_stdstdio=''
d_strctcpy=''
d_symlink=''
+ d_syscall=''
d_tminsys=''
i_systime=''
d_varargs=''
***************
*** 117,126 ****
--- 149,170 ----
d_vfork=''
d_voidsig=''
d_vprintf=''
+ d_charvspr=''
gidtype=''
+ i_dirent=''
+ d_dirnamlen=''
+ i_fcntl=''
+ i_grp=''
+ i_pwd=''
+ d_pwquota=''
+ d_pwage=''
+ i_sysdir=''
+ i_sysioctl=''
+ i_varargs=''
intsize=''
libc=''
libdbm=''
+ libndir=''
libnm=''
mallocsrc=''
mallocobj=''
***************
*** 133,141 ****
--- 177,187 ----
medium=''
large=''
huge=''
+ optimize=''
ccflags=''
ldflags=''
cc=''
+ libs=''
n=''
c=''
package=''
***************
*** 162,168 ****
define='define'
undef='undef'
! libpth='/usr/lib /usr/local/lib /lib /usr/lib/large /lib/large /usr/lib/small /lib/small'
smallmach='pdp11 i8086 z8000 i80286 iAPX286'
rmlist='kit[1-9]isdone kit[1-9][0-9]isdone'
trap 'echo " "; rm -f $rmlist; exit 1' 1 2 3
--- 208,214 ----
define='define'
undef='undef'
! libpth='/usr/lib /usr/local/lib /usr/lib/386 /usr/lib/large /lib /lib/386 /lib/large /usr/lib/small /lib/small'
smallmach='pdp11 i8086 z8000 i80286 iAPX286'
rmlist='kit[1-9]isdone kit[1-9][0-9]isdone'
trap 'echo " "; rm -f $rmlist; exit 1' 1 2 3
***************
*** 189,195 ****
attrlist="$attrlist nsc32000 sinix xenix venix posix ansi M_XENIX"
attrlist="$attrlist $mc68k __STDC__ UTS M_I8086 M_I186 M_I286 M_I386"
attrlist="$attrlist i186"
! pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /etc /usr/lib /lib /usr/local/lib"
d_newshome="/usr/NeWS"
defvoidused=7
--- 235,241 ----
attrlist="$attrlist nsc32000 sinix xenix venix posix ansi M_XENIX"
attrlist="$attrlist $mc68k __STDC__ UTS M_I8086 M_I186 M_I286 M_I386"
attrlist="$attrlist i186"
! pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /usr/plx /usr/5bin /vol/local/bin /etc /usr/lib /lib /usr/local/lib /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/bin /bsd4.3/usr/ucb"
d_newshome="/usr/NeWS"
defvoidused=7
***************
*** 357,380 ****
chmod +x loc
$eunicefix loc
loclist="
- expr
- sed
- echo
cat
- rm
- mv
cp
! tr
mkdir
sort
uniq
- grep
"
trylist="
- test
- egrep
Mcc
cpp
"
for file in $loclist; do
xxx=`loc $file $file $pth`
--- 403,427 ----
chmod +x loc
$eunicefix loc
loclist="
cat
cp
! echo
! expr
! grep
mkdir
+ mv
+ rm
+ sed
sort
+ tr
uniq
"
trylist="
Mcc
cpp
+ egrep
+ test
+ uname
"
for file in $loclist; do
xxx=`loc $file $file $pth`
***************
*** 463,481 ****
rmlist="$rmlist loc"
: get list of predefined functions in a handy place
echo " "
if test -f /lib/libc.a; then
echo "Your C library is in /lib/libc.a. You're normal."
libc=/lib/libc.a
else
! ans=`loc libc.a blurfl/dyick $libpth`
! if test ! -f $ans; then
ans=`loc libc blurfl/dyick $libpth`
fi
! if test ! -f $ans; then
ans=`loc clib blurfl/dyick $libpth`
fi
! if test -f $ans; then
echo "Your C library is in $ans, of all places."
libc=$ans
else
--- 510,546 ----
rmlist="$rmlist loc"
: get list of predefined functions in a handy place
+ if $test -n "$uname"; then
+ os=`$uname -s`
+ else
+ os=unknown
+ fi
echo " "
if test -f /lib/libc.a; then
echo "Your C library is in /lib/libc.a. You're normal."
libc=/lib/libc.a
else
! if test "$os" = DomainOS ; then
ans=`loc libc blurfl/dyick $libpth`
+ else
+ ans=`loc libc.a blurfl/dyick $libpth`
fi
! if test ! -f "$ans"; then
ans=`loc clib blurfl/dyick $libpth`
fi
! if test ! -f "$ans"; then
! ans=`loc libc blurfl/dyick $libpth`
! fi
! if test ! -f "$ans"; then
! ans=`loc Slibc.a blurfl/dyick /usr/lib/386 /lib/386 $libpth`
! fi
! if test ! -f "$ans"; then
! ans=`loc Mlibc.a blurfl/dyick $libpth`
! fi
! if test ! -f "$ans"; then
! ans=`loc Llibc.a blurfl/dyick $libpth`
! fi
! if test -f "$ans"; then
echo "Your C library is in $ans, of all places."
libc=$ans
else
***************
*** 501,513 ****
echo " "
$echo $n "Extracting names from $libc for later perusal...$c"
nm $libc 2>/dev/null >libc.tmp
! sed -n -e 's/^.* [AT] *_//p' -e 's/^.* [AT] *//p' <libc.tmp >libc.list
if $contains '^printf$' libc.list >/dev/null 2>&1; then
echo "done"
else
! sed -n -e 's/^.* D _//p' -e 's/^.* D //p' <libc.tmp >libc.list
$contains '^printf$' libc.list >/dev/null 2>&1 || \
! sed -n -e 's/^_//' \
-e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p' <libc.tmp >libc.list
if $contains '^printf$' libc.list >/dev/null 2>&1; then
echo "done"
--- 566,582 ----
echo " "
$echo $n "Extracting names from $libc for later perusal...$c"
nm $libc 2>/dev/null >libc.tmp
! $sed -n -e 's/^.* [AT] __*//p' -e 's/^.* [AT] //p' <libc.tmp >libc.list
if $contains '^printf$' libc.list >/dev/null 2>&1; then
echo "done"
else
! if test "$os" = DomainOS ; then
! $sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p' <libc.tmp >libc.list
! else
! $sed -n -e 's/^.* D __*//p' -e 's/^.* D //p' <libc.tmp >libc.list
! fi
$contains '^printf$' libc.list >/dev/null 2>&1 || \
! $sed -n -e 's/^_//' \
-e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p' <libc.tmp >libc.list
if $contains '^printf$' libc.list >/dev/null 2>&1; then
echo "done"
***************
*** 516,527 ****
echo "nm didn't seem to work right."
echo "Trying ar instead..."
if ar t $libc > libc.tmp; then
! sed -e 's/\.o$//' < libc.tmp > libc.list
echo "Ok."
else
echo "ar didn't seem to work right."
echo "Maybe this is a Cray...trying bld instead..."
! if bld t $libc | sed -e 's/.*\///' -e 's/\.o:.*$//' > libc.list; then
echo "Ok."
else
echo "That didn't work either. Giving up."
--- 585,596 ----
echo "nm didn't seem to work right."
echo "Trying ar instead..."
if ar t $libc > libc.tmp; then
! $sed -e 's/\.o$//' < libc.tmp > libc.list
echo "Ok."
else
echo "ar didn't seem to work right."
echo "Maybe this is a Cray...trying bld instead..."
! if bld t $libc | $sed -e 's/.*\///' -e 's/\.o:.*$//' > libc.list; then
echo "Ok."
else
echo "That didn't work either. Giving up."
***************
*** 535,541 ****
: make some quick guesses about what we are up against
echo " "
$echo $n "Hmm... $c"
! if $contains SIGTSTP /usr/include/signal.h >/dev/null 2>&1 ; then
echo "Looks kind of like a BSD system, but we'll see..."
echo exit 0 >bsd
echo exit 1 >usg
--- 604,611 ----
: make some quick guesses about what we are up against
echo " "
$echo $n "Hmm... $c"
! cat /usr/include/signal.h /usr/include/sys/signal.h >foo
! if $contains SIGTSTP foo >/dev/null 2>&1 ; then
echo "Looks kind of like a BSD system, but we'll see..."
echo exit 0 >bsd
echo exit 1 >usg
***************
*** 591,596 ****
--- 661,667 ----
fi
chmod +x bsd usg v7 eunice venix
$eunicefix bsd usg v7 eunice venix
+ rm -rf foo
rmlist="$rmlist bsd usg v7 eunice venix xenix"
: see if sh knows # comments
***************
*** 710,716 ****
if test -d $bin; then
cont=''
else
! dflt=n
rp="Directory $bin doesn't exist. Use that name anyway? [$dflt]"
$echo $n "$rp $c"
. myread
--- 781,790 ----
if test -d $bin; then
cont=''
else
! case "$fastread" in
! yes) dflt=y;;
! *) dflt=n;;
! esac
rp="Directory $bin doesn't exist. Use that name anyway? [$dflt]"
$echo $n "$rp $c"
. myread
***************
*** 722,730 ****
done
: determine where manual pages go
case "$mansrc" in
'')
! dflt=`loc . /usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1 /usr/man/u_man/man1 /usr/man/man1`
;;
*) dflt="$mansrc"
;;
--- 796,808 ----
done
: determine where manual pages go
+ $cat <<EOM
+
+ $package has manual pages that need to be installed in source form.
+ EOM
case "$mansrc" in
'')
! dflt=`loc . /usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1 /usr/man/u_man/man1 /usr/man/man1 /usr/man/man.L`
;;
*) dflt="$mansrc"
;;
***************
*** 736,745 ****
$echo $n "$rp $c"
. myread
mansrc=`filexp "$ans"`
! if test -d $mansrc; then
cont=''
else
! dflt=n
rp="Directory $mansrc doesn't exist. Use that name anyway? [$dflt]"
$echo $n "$rp $c"
. myread
--- 814,827 ----
$echo $n "$rp $c"
. myread
mansrc=`filexp "$ans"`
! if $test -d "$mansrc"; then
cont=''
else
! if $test "$fastread" = yes; then
! dflt=y
! else
! dflt=n
! fi
rp="Directory $mansrc doesn't exist. Use that name anyway? [$dflt]"
$echo $n "$rp $c"
. myread
***************
*** 759,764 ****
--- 841,849 ----
*C)
manext=C
;;
+ *L)
+ manext=L
+ ;;
*)
manext=1
;;
***************
*** 832,839 ****
*split)
case "$split" in
'')
! if $contains '\-i' /usr/man/man1/ld.1 >/dev/null 2>&1 || \
! $contains '\-i' /usr/man/man1/cc.1 >/dev/null 2>&1; then
dflt='-i'
else
dflt='none'
--- 917,924 ----
*split)
case "$split" in
'')
! if $contains '\-i' $mansrc/man1/ld.1 >/dev/null 2>&1 || \
! $contains '\-i' $mansrc/man1/cc.1 >/dev/null 2>&1; then
dflt='-i'
else
dflt='none'
***************
*** 851,857 ****
unsplit=''
;;
*large*|*small*|*medium*|*huge*)
! case "$model" in
*large*)
case "$large" in
'') dflt='-Ml';;
--- 936,942 ----
unsplit=''
;;
*large*|*small*|*medium*|*huge*)
! case "$models" in
*large*)
case "$large" in
'') dflt='-Ml';;
***************
*** 867,873 ****
;;
*) large='';;
esac
! case "$model" in
*huge*)
case "$huge" in
'') dflt='-Mh';;
--- 952,958 ----
;;
*) large='';;
esac
! case "$models" in
*huge*)
case "$huge" in
'') dflt='-Mh';;
***************
*** 883,889 ****
;;
*) huge="$large";;
esac
! case "$model" in
*medium*)
case "$medium" in
'') dflt='-Mm';;
--- 968,974 ----
;;
*) huge="$large";;
esac
! case "$models" in
*medium*)
case "$medium" in
'') dflt='-Mm';;
***************
*** 899,905 ****
;;
*) medium="$large";;
esac
! case "$model" in
*small*)
case "$small" in
'') dflt='none';;
--- 984,990 ----
;;
*) medium="$large";;
esac
! case "$models" in
*small*)
case "$small" in
'') dflt='none';;
***************
*** 948,954 ****
*) dflt="$cc";;
esac
$cat <<'EOM'
!
On some systems the default C compiler will not resolve multiple global
references that happen to have the same name. On some such systems the
"Mcc" command may be used to force these to be resolved. On other systems
--- 1033,1039 ----
*) dflt="$cc";;
esac
$cat <<'EOM'
!
On some systems the default C compiler will not resolve multiple global
references that happen to have the same name. On some such systems the
"Mcc" command may be used to force these to be resolved. On other systems
***************
*** 974,979 ****
--- 1059,1090 ----
gcc*) cpp=`loc gcc-cpp $cpp $pth`;;
esac
+ : determine optimize, if desired, or use for debug flag also
+ case "$optimize" in
+ ' ') dflt="none"
+ ;;
+ '') dflt="-O";
+ ;;
+ *) dflt="$optimize"
+ ;;
+ esac
+ cat <<EOH
+ Some C compilers have problems with their optimizers, by default, $package
+ compiles with the -O flag to use the optimizer. Alternately, you might
+ want to use the symbolic debugger, which uses the -g flag (on traditional
+ Unix systems). Either flag can be specified here. To use neither flag,
+ specify the word "none".
+
+ EOH
+ rp="What optimizer/debugger flag should be used? [$dflt]"
+ $echo $n "$rp $c"
+ . myread
+ optimize="$ans"
+ case "$optimize" in
+ 'none') optimize=" "
+ ;;
+ esac
+
case "$ccflags" in
'') dflt='none';;
*) dflt="$ccflags";;
***************
*** 997,1003 ****
*) dflt="$ldflags";;
esac
echo " "
! rp="Any additional ld flags (such as libraries)? [$dflt]"
$echo $n "$rp $c"
. myread
case "$ans" in
--- 1108,1114 ----
*) dflt="$ldflags";;
esac
echo " "
! rp="Any additional ld flags (NOT including libraries)? [$dflt]"
$echo $n "$rp $c"
. myread
case "$ans" in
***************
*** 1006,1016 ****
ldflags="$ans"
rmlist="$rmlist pdp11"
! : check for ordering of bytes in a long
echo " "
case "$byteorder" in
'')
! echo "Checking to see how your bytes are ordered..."
$cat >try.c <<'EOCP'
#include <stdio.h>
main()
--- 1117,1160 ----
ldflags="$ans"
rmlist="$rmlist pdp11"
! case "$libs" in
! '') dflt='none';;
! *) dflt="$libs";;
! esac
!
! $cat <<EOM
!
! Some versions of Unix support shared libraries, which make
! executables smaller but make load time slightly longer.
!
! On some systems, mostly newer Unix System V's, the shared library
! is included by putting the option "-lc_s" as the last thing on the
! cc command line when linking. Other systems use shared libraries
! by default. There may be other libraries needed to compile $package
! on your machine as well. If your system needs the "-lc_s" option,
! include it here. Include any other special libraries here as well.
! EOM
!
echo " "
+ rp="Any additional libraries? [$dflt]"
+ $echo $n "$rp $c"
+ . myread
+ case "$ans" in
+ none) ans='';
+ esac
+ libs="$ans"
+
+ : check for ordering of bytes in a long
case "$byteorder" in
'')
! cat <<'EOM'
!
! In the following, larger digits indicate more significance. A big-endian
! machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
! little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
! machines may have weird orders like 3412. If the test program works the
! default is probably right. I'm now running the test program...
! EOM
$cat >try.c <<'EOCP'
#include <stdio.h>
main()
***************
*** 1027,1032 ****
--- 1171,1180 ----
EOCP
if $cc try.c -o try >/dev/null 2>&1 ; then
dflt=`try`
+ case "$dflt" in
+ ????) echo "(The test program ran ok.)";;
+ *) echo "(The test program didn't run right for some reason.)";;
+ esac
else
dflt='4321'
echo "(I can't seem to compile the test program. Guessing big-endian...)"
***************
*** 1033,1038 ****
--- 1181,1187 ----
fi
;;
*)
+ echo " "
dflt="$byteorder"
;;
esac
***************
*** 1134,1139 ****
--- 1283,1298 ----
fi
rm -f testcpp.c testcpp.out
+ : see if bcmp exists
+ echo " "
+ if $contains '^bcmp$' libc.list >/dev/null 2>&1; then
+ echo 'bcmp() found.'
+ d_bcmp="$define"
+ else
+ echo 'bcmp() not found.'
+ d_bcmp="$undef"
+ fi
+
: see if bcopy exists
echo " "
if $contains '^bcopy$' libc.list >/dev/null 2>&1; then
***************
*** 1149,1155 ****
cat >.ucbsprf.c <<'EOF'
main() { char buf[10]; exit((unsigned long)sprintf(buf,"%s","foo") > 10L); }
EOF
! if $cc .ucbsprf.c -o .ucbsprf >/dev/null 2>&1 && .ucbsprf; then
echo "Your sprintf() returns (int)."
d_charsprf="$undef"
else
--- 1308,1314 ----
cat >.ucbsprf.c <<'EOF'
main() { char buf[10]; exit((unsigned long)sprintf(buf,"%s","foo") > 10L); }
EOF
! if $cc $ccflags .ucbsprf.c -o .ucbsprf >/dev/null 2>&1 && .ucbsprf; then
echo "Your sprintf() returns (int)."
d_charsprf="$undef"
else
***************
*** 1158,1173 ****
fi
/bin/rm -f .ucbsprf.c .ucbsprf
: see if crypt exists
echo " "
if $contains '^crypt$' libc.list >/dev/null 2>&1; then
echo 'crypt() found.'
d_crypt="$define"
else
! echo 'crypt() not found.'
! d_crypt="$undef"
fi
: now see if they want to do setuid emulation
case "$d_dosuid" in
'') dflt=n;;
--- 1317,1403 ----
fi
/bin/rm -f .ucbsprf.c .ucbsprf
+ : see if vprintf exists
+ echo " "
+ if $contains '^vprintf$' libc.list >/dev/null 2>&1; then
+ echo 'vprintf() found.'
+ d_vprintf="$define"
+ cat >.ucbsprf.c <<'EOF'
+ #include <varargs.h>
+
+ main() { xxx("foo"); }
+
+ xxx(va_alist)
+ va_dcl
+ {
+ va_list args;
+ char buf[10];
+
+ va_start(args);
+ exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
+ }
+ EOF
+ if $cc $ccflags .ucbsprf.c -o .ucbsprf >/dev/null 2>&1 && .ucbsprf; then
+ echo "Your vsprintf() returns (int)."
+ d_charvspr="$undef"
+ else
+ echo "Your vsprintf() returns (char*)."
+ d_charvspr="$define"
+ fi
+ /bin/rm -f .ucbsprf.c .ucbsprf
+ else
+ echo 'vprintf() not found.'
+ d_vprintf="$undef"
+ d_charvspr="$undef"
+ fi
+
: see if crypt exists
echo " "
if $contains '^crypt$' libc.list >/dev/null 2>&1; then
echo 'crypt() found.'
d_crypt="$define"
+ cryptlib=''
else
! cryptlib=`loc Slibcrypt.a "" /lib/386 /lib`
! if $test -z "$cryptlib"; then
! cryptlib=`loc Mlibcrypt.a "" /lib/386 /lib`
! else
! cryptlib=-lcrypt
! fi
! if $test -z "$cryptlib"; then
! cryptlib=`loc Llibcrypt.a "" /lib/386 /lib`
! else
! cryptlib=-lcrypt
! fi
! if $test -z "$cryptlib"; then
! cryptlib=`loc libcrypt.a "" $libpth`
! else
! cryptlib=-lcrypt
! fi
! if $test -z "$cryptlib"; then
! echo 'crypt() not found.'
! d_crypt="$undef"
! else
! d_crypt="$define"
! fi
fi
+ : see if this is a dirent system
+ echo " "
+ if $test -r /usr/include/dirent.h ; then
+ i_dirent="$define"
+ echo "dirent.h found."
+ if $contains 'd_namlen' /usr/include/sys/dirent.h >/dev/null 2>&1; then
+ d_dirnamlen="$define"
+ else
+ d_dirnamlen="$undef"
+ fi
+ else
+ i_dirent="$undef"
+ d_dirnamlen="$define"
+ echo "No dirent.h found."
+ fi
+
: now see if they want to do setuid emulation
case "$d_dosuid" in
'') dflt=n;;
***************
*** 1194,1199 ****
--- 1424,1439 ----
*) d_dosuid="$undef";;
esac
+ : see if dup2 exists
+ echo " "
+ if $contains '^dup2$' libc.list >/dev/null 2>&1; then
+ echo 'dup2() found.'
+ d_dup2="$define"
+ else
+ echo 'dup2() not found.'
+ d_dup2="$undef"
+ fi
+
: see if fchmod exists
echo " "
if $contains '^fchmod$' libc.list >/dev/null 2>&1; then
***************
*** 1244,1249 ****
--- 1484,1499 ----
d_getgrps="$undef"
fi
+ : see if gethostent exists
+ echo " "
+ if $contains '^gethostent$' libc.list >/dev/null 2>&1; then
+ echo 'gethostent() found.'
+ d_gethent="$define"
+ else
+ echo 'gethostent() not found.'
+ d_gethent="$undef"
+ fi
+
: see if getpgrp exists
echo " "
if $contains '^getpgrp$' libc.list >/dev/null 2>&1; then
***************
*** 1324,1329 ****
--- 1574,1589 ----
d_killpg="$undef"
fi
+ : see if memcmp exists
+ echo " "
+ if $contains '^memcmp$' libc.list >/dev/null 2>&1; then
+ echo 'memcmp() found.'
+ d_memcmp="$define"
+ else
+ echo 'memcmp() not found.'
+ d_memcmp="$undef"
+ fi
+
: see if memcpy exists
echo " "
if $contains '^memcpy$' libc.list >/dev/null 2>&1; then
***************
*** 1346,1352 ****
: see if ndbm is available
echo " "
! if $test -r /usr/include/ndbm.h ; then
d_ndbm="$define"
echo "ndbm.h found."
else
--- 1606,1612 ----
: see if ndbm is available
echo " "
! if $test -r /usr/include/ndbm.h || $test -r /usr/local/include/ndbm.h; then
d_ndbm="$define"
echo "ndbm.h found."
else
***************
*** 1364,1369 ****
--- 1624,1661 ----
echo "dbm.h not found."
fi
+ : see if this is an pwd system
+ echo " "
+ if $test -r /usr/include/pwd.h ; then
+ i_pwd="$define"
+ echo "pwd.h found."
+ if $contains 'pw_quota' /usr/include/pwd.h >/dev/null 2>&1; then
+ d_pwquota="$define"
+ else
+ d_pwquota="$undef"
+ fi
+ if $contains 'pw_age' /usr/include/pwd.h >/dev/null 2>&1; then
+ d_pwage="$define"
+ else
+ d_pwage="$undef"
+ fi
+ else
+ i_pwd="$undef"
+ d_pwquota="$undef"
+ d_pwage="$undef"
+ echo "No pwd.h found."
+ fi
+
+ : see if readdir exists
+ echo " "
+ if $contains '^readdir$' libc.list >/dev/null 2>&1; then
+ echo 'readdir() found.'
+ d_readdir="$define"
+ else
+ echo 'readdir() not found.'
+ d_readdir="$undef"
+ fi
+
: see if rename exists
echo " "
if $contains '^rename$' libc.list >/dev/null 2>&1; then
***************
*** 1515,1520 ****
--- 1807,1817 ----
fi
fi
fi
+ if $contains socketpair libc.list >/dev/null 2>&1; then
+ d_sockpair="$define"
+ else
+ d_sockpair="$undef"
+ fi
: see if stat knows about block sizes
echo " "
***************
*** 1578,1583 ****
--- 1875,1890 ----
d_symlink="$undef"
fi
+ : see if syscall exists
+ echo " "
+ if $contains '^syscall$' libc.list >/dev/null 2>&1; then
+ echo 'syscall() found.'
+ d_syscall="$define"
+ else
+ echo 'syscall() not found.'
+ d_syscall="$undef"
+ fi
+
: see if struct tm is defined in sys/time.h
echo " "
if $contains 'struct tm' /usr/include/time.h >/dev/null 2>&1 ; then
***************
*** 1624,1639 ****
d_voidsig="$undef"
fi
- : see if vprintf exists
- echo " "
- if $contains '^vprintf$' libc.list >/dev/null 2>&1; then
- echo 'vprintf() found.'
- d_vprintf="$define"
- else
- echo 'vprintf() not found.'
- d_vprintf="$undef"
- fi
-
: check for void type
echo " "
$cat <<EOM
--- 1931,1936 ----
***************
*** 1727,1732 ****
--- 2024,2079 ----
. myread
gidtype="$ans"
+ : see if this is an fcntl system
+ echo " "
+ if $test -r /usr/include/fcntl.h ; then
+ i_fcntl="$define"
+ echo "fcntl.h found."
+ else
+ i_fcntl="$undef"
+ echo "No fcntl.h found, but that's ok."
+ fi
+
+ : see if this is an grp system
+ echo " "
+ if $test -r /usr/include/grp.h ; then
+ i_grp="$define"
+ echo "grp.h found."
+ else
+ i_grp="$undef"
+ echo "No grp.h found."
+ fi
+
+ : see if this is a sys/dir.h system
+ echo " "
+ if $test -r /usr/include/sys/dir.h ; then
+ i_sysdir="$define"
+ echo "sysdir.h found."
+ else
+ i_sysdir="$undef"
+ echo "No sysdir.h found."
+ fi
+
+ : see if ioctl defs are in sgtty/termio or sys/ioctl
+ echo " "
+ if $test -r /usr/include/sys/ioctl.h ; then
+ i_sysioctl="$define"
+ echo "sys/ioctl.h found."
+ else
+ i_sysioctl="$undef"
+ echo "sys/ioctl.h not found, assuming ioctl args are defined in sgtty.h."
+ fi
+
+ : see if this is a varargs system
+ echo " "
+ if $test -r /usr/include/varargs.h ; then
+ i_varargs="$define"
+ echo "varargs.h found."
+ else
+ i_varargs="$undef"
+ echo "No varargs.h found, but that's ok (I hope)."
+ fi
+
: check for length of integer
echo " "
case "$intsize" in
***************
*** 1768,1774 ****
$cat <<EOM
The $package package has some auxiliary files that should be put in a library
! that is accessible by everyone. Where do you want to put these private"
EOM
$echo $n "but accessible files? [$dflt] $c"
rp="Put private files where? [$dflt]"
--- 2115,2121 ----
$cat <<EOM
The $package package has some auxiliary files that should be put in a library
! that is accessible by everyone. Where do you want to put these "private"
EOM
$echo $n "but accessible files? [$dflt] $c"
rp="Put private files where? [$dflt]"
***************
*** 1893,1898 ****
--- 2240,2275 ----
esac
fi
+ : see if we should include -lndir
+ echo " "
+ if $test -r /usr/lib/libndir.a || $test -r /usr/local/lib/libndir.a ; then
+ echo "New directory library found."
+ libndir='-lndir'
+ else
+ ans=`loc libndir.a x $libpth`
+ case "$ans" in
+ x)
+ echo "No ndir library found."
+ libndir=''
+ ;;
+ *)
+ echo "New directory library found in $ans."
+ libndir="$ans"
+ ;;
+ esac
+ fi
+ case "$libndir" in
+ '') ;;
+ *)
+ case "$d_readdir" in
+ $define)
+ echo "Since you have readdir in the C library, I'll ignore $libndir"
+ libndir=''
+ ;;
+ esac
+ ;;
+ esac
+
: see if we should include -lnm
echo " "
if $test -r /usr/lib/libnm.a || $test -r /usr/local/lib/libnm.a ; then
***************
*** 1981,1986 ****
--- 2358,2387 ----
mail='$mail'
cpp='$cpp'
perl='$perl'
+ emacs='$emacs'
+ ls='$ls'
+ rmail='$rmail'
+ sendmail='$sendmail'
+ shar='$shar'
+ smail='$smail'
+ tbl='$tbl'
+ troff='$troff'
+ nroff='$nroff'
+ uname='$uname'
+ uuname='$uuname'
+ line='$line'
+ chgrp='$chgrp'
+ chmod='$chmod'
+ lint='$lint'
+ sleep='$sleep'
+ pr='$pr'
+ tar='$tar'
+ ln='$ln'
+ lpr='$lpr'
+ lp='$lp'
+ touch='$touch'
+ make='$make'
+ date='$date'
Log='$Log'
Header='$Header'
bin='$bin'
***************
*** 1988,2002 ****
--- 2389,2407 ----
contains='$contains'
cppstdin='$cppstdin'
cppminus='$cppminus'
+ d_bcmp='$d_bcmp'
d_bcopy='$d_bcopy'
d_charsprf='$d_charsprf'
d_crypt='$d_crypt'
+ cryptlib='$cryptlib'
d_dosuid='$d_dosuid'
+ d_dup2='$d_dup2'
d_fchmod='$d_fchmod'
d_fchown='$d_fchown'
d_fcntl='$d_fcntl'
d_flock='$d_flock'
d_getgrps='$d_getgrps'
+ d_gethent='$d_gethent'
d_getpgrp='$d_getpgrp'
d_getprior='$d_getprior'
d_htonl='$d_htonl'
***************
*** 2003,2012 ****
--- 2408,2419 ----
d_index='$d_index'
d_ioctl='$d_ioctl'
d_killpg='$d_killpg'
+ d_memcmp='$d_memcmp'
d_memcpy='$d_memcpy'
d_mkdir='$d_mkdir'
d_ndbm='$d_ndbm'
d_odbm='$d_odbm'
+ d_readdir='$d_readdir'
d_rename='$d_rename'
d_rmdir='$d_rmdir'
d_setegid='$d_setegid'
***************
*** 2018,2023 ****
--- 2425,2431 ----
d_setrgid='$d_setrgid'
d_setruid='$d_setruid'
d_socket='$d_socket'
+ d_sockpair='$d_sockpair'
d_oldsock='$d_oldsock'
socketlib='$socketlib'
sockethdr='$sockethdr'
***************
*** 2025,2030 ****
--- 2433,2439 ----
d_stdstdio='$d_stdstdio'
d_strctcpy='$d_strctcpy'
d_symlink='$d_symlink'
+ d_syscall='$d_syscall'
d_tminsys='$d_tminsys'
i_systime='$i_systime'
d_varargs='$d_varargs'
***************
*** 2031,2040 ****
--- 2440,2461 ----
d_vfork='$d_vfork'
d_voidsig='$d_voidsig'
d_vprintf='$d_vprintf'
+ d_charvspr='$d_charvspr'
gidtype='$gidtype'
+ i_dirent='$i_dirent'
+ d_dirnamlen='$d_dirnamlen'
+ i_fcntl='$i_fcntl'
+ i_grp='$i_grp'
+ i_pwd='$i_pwd'
+ d_pwquota='$d_pwquota'
+ d_pwage='$d_pwage'
+ i_sysdir='$i_sysdir'
+ i_sysioctl='$i_sysioctl'
+ i_varargs='$i_varargs'
intsize='$intsize'
libc='$libc'
libdbm='$libdbm'
+ libndir='$libndir'
libnm='$libnm'
mallocsrc='$mallocsrc'
mallocobj='$mallocobj'
***************
*** 2047,2055 ****
--- 2468,2478 ----
medium='$medium'
large='$large'
huge='$huge'
+ optimize='$optimize'
ccflags='$ccflags'
ldflags='$ldflags'
cc='$cc'
+ libs='$libs'
n='$n'
c='$c'
package='$package'
***************
*** 2126,2133 ****
$echo $n "$rp $c"
. UU/myread
case "$ans" in
! y*) make depend
! echo "Now you must run a make."
;;
*) echo "You must run 'make depend' then 'make'."
;;
--- 2549,2555 ----
$echo $n "$rp $c"
. UU/myread
case "$ans" in
! y*) make depend && echo "Now you must run a make."
;;
*) echo "You must run 'make depend' then 'make'."
;;
diff -c -r beta/MANIFEST gamma/MANIFEST
*** beta/MANIFEST Fri Sep 15 16:07:27 1989
--- gamma/MANIFEST Fri Sep 15 16:10:28 1989
***************
*** 62,72 ****
handy.h Handy definitions
hash.c Associative arrays
hash.h Public declarations for the above
- hdef Build database of .h definition locations
ioctl.pl Sample ioctl.pl
lib/complete.pl A command completion subroutine
lib/dumpvar.pl A variable dumper
lib/getopt.pl Perl library supporting option parsing
lib/importenv.pl Perl routine to get environment into variables
lib/perldb.pl Perl debugging routines
lib/stat.pl Perl library supporting stat function
--- 62,72 ----
handy.h Handy definitions
hash.c Associative arrays
hash.h Public declarations for the above
ioctl.pl Sample ioctl.pl
lib/complete.pl A command completion subroutine
lib/dumpvar.pl A variable dumper
lib/getopt.pl Perl library supporting option parsing
+ lib/getopts.pl Perl library supporting option parsing
lib/importenv.pl Perl routine to get environment into variables
lib/perldb.pl Perl debugging routines
lib/stat.pl Perl library supporting stat function
***************
*** 76,82 ****
makedir.SH Precursor to makedir
makelib.SH A thing to turn C .h file into perl .h files
malloc.c A version of malloc you might not want
- munch Try to make some .h equivalents
patchlevel.h The current patch level of perl
perl.h Global declarations
perl.man.1 The manual page(s), first fourth
--- 76,81 ----
diff -c -r beta/Makefile.SH gamma/Makefile.SH
*** beta/Makefile.SH Fri Sep 15 16:07:23 1989
--- gamma/Makefile.SH Fri Sep 15 16:12:05 1989
***************
*** 42,48 ****
mallocobj = $mallocobj
SLN = $sln
! libs = $libnm -lm $libdbm
public = perl taintperl $suidperl
--- 42,48 ----
mallocobj = $mallocobj
SLN = $sln
! libs = $libnm -lm $libdbm $libs $libndir
public = perl taintperl $suidperl
***************
*** 102,108 ****
# used for all scripts that aren't set-id or running under something set-id.
perl: perl.o $(obj)
! $(CC) $(LARGE) $(obj) perl.o $(LDFLAGS) $(libs) -o perl
# This version, if specified in Configure, does ONLY those scripts which need
# set-id emulation. Suidperl must be setuid root. It contains the "taint"
--- 102,108 ----
# used for all scripts that aren't set-id or running under something set-id.
perl: perl.o $(obj)
! $(CC) $(LARGE) $(LDFLAGS) $(obj) perl.o $(libs) -o perl
# This version, if specified in Configure, does ONLY those scripts which need
# set-id emulation. Suidperl must be setuid root. It contains the "taint"
***************
*** 110,116 ****
# has been invoked correctly.
suidperl: tperl.o sperly.o $(tobj)
! $(CC) $(LDFLAGS) $(LARGE) sperly.o $(tobj) tperl.o $(libs) -o suidperl
# This version interprets scripts that are already set-id either via a wrapper
# or through the kernel allowing set-id scripts (bad idea). Taintperl must
--- 110,116 ----
# has been invoked correctly.
suidperl: tperl.o sperly.o $(tobj)
! $(CC) $(LARGE) $(LDFLAGS) sperly.o $(tobj) tperl.o $(libs) -o suidperl
# This version interprets scripts that are already set-id either via a wrapper
# or through the kernel allowing set-id scripts (bad idea). Taintperl must
***************
*** 118,124 ****
# and normal perl is the presence of the "taint" checks.
taintperl: tperl.o tperly.o $(tobj)
! $(CC) $(LDFLAGS) $(LARGE) tperly.o $(tobj) tperl.o $(libs) -o taintperl
# Replicating all this junk is yucky, but I don't see a portable way to fix it.
--- 118,124 ----
# and normal perl is the presence of the "taint" checks.
taintperl: tperl.o tperly.o $(tobj)
! $(CC) $(LARGE) $(LDFLAGS) tperly.o $(tobj) tperl.o $(libs) -o taintperl
# Replicating all this junk is yucky, but I don't see a portable way to fix it.
***************
*** 252,261 ****
config.h arg.h
$(CC) -c $(CFLAGS) $(LARGE) perl.c
- # if a .h file depends on another .h file...
- $(h):
- touch $@
-
perl.man: perl.man.1 perl.man.2 perl.man.3 perl.man.4
./perl -e '($$r,$$p)=$$]=~/(\d+\.\d+).*\n\D*(\d+)/;' \
-e 'print ".ds RP Release $$r Patchlevel $$p\n";' >perl.man
--- 252,257 ----
***************
*** 306,315 ****
cd x2p; $(MAKE) clean
realclean:
rm -f perl *.orig */*.orig *~ */*~ *.o core $(addedbyconf) perl.man
rm -f perl.c perly.h t/perl Makefile config.h makedepend makedir
rm -f x2p/Makefile
- cd x2p; $(MAKE) realclean
# The following lint has practically everything turned on. Unfortunately,
# you have to wade through a lot of mumbo jumbo that can't be suppressed.
--- 302,311 ----
cd x2p; $(MAKE) clean
realclean:
+ cd x2p; $(MAKE) realclean
rm -f perl *.orig */*.orig *~ */*~ *.o core $(addedbyconf) perl.man
rm -f perl.c perly.h t/perl Makefile config.h makedepend makedir
rm -f x2p/Makefile
# The following lint has practically everything turned on. Unfortunately,
# you have to wade through a lot of mumbo jumbo that can't be suppressed.
More information about the Alt.sources
mailing list