summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-10-27 21:32:30 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-10-27 21:32:30 +0000
commitbca6c107bab5aabfb35be60303a5b31e9c9ec4a4 (patch)
tree79bf0e7823de9ee0de4c8197e29dba1118b79184
parentd543acb6a7b5779dc3f569b762833cd9da27fd50 (diff)
parent8f753cb54274cceba5865fd4e206073865f6e190 (diff)
downloadperl-bca6c107bab5aabfb35be60303a5b31e9c9ec4a4.tar.gz
integrate cfgperl contents into mainline; merge conflicts
p4raw-id: //depot/perl@4475
-rwxr-xr-xConfigure526
-rw-r--r--Makefile.SH4
-rw-r--r--Policy_sh.SH134
-rw-r--r--Porting/Glossary155
-rw-r--r--Porting/config.sh74
-rw-r--r--Porting/config_H169
-rw-r--r--config_h.SH151
-rw-r--r--deb.c26
-rw-r--r--djgpp/config.over6
-rw-r--r--djgpp/configure.bat1
-rw-r--r--djgpp/djgppsed.sh5
-rw-r--r--dump.c15
-rwxr-xr-xembed.pl2
-rw-r--r--epoc/config.h85
-rw-r--r--ext/Data/Dumper/Dumper.xs11
-rw-r--r--ext/Devel/DProf/DProf.xs14
-rw-r--r--ext/Devel/Peek/Peek.xs2
-rw-r--r--hints/aix.sh8
-rw-r--r--hints/dec_osf.sh32
-rw-r--r--hints/hpux.sh30
-rw-r--r--iperlsys.h17
-rwxr-xr-xlib/diagnostics.pm4
-rw-r--r--malloc.c25
-rw-r--r--mg.c5
-rw-r--r--op.c62
-rw-r--r--perl.c75
-rw-r--r--perl.h113
-rw-r--r--pod/perldelta.pod20
-rw-r--r--pod/perldiag.pod6
-rw-r--r--pp.c8
-rw-r--r--pp_ctl.c4
-rw-r--r--proto.h2
-rw-r--r--regcomp.c216
-rw-r--r--regcomp.h44
-rw-r--r--regexec.c112
-rw-r--r--run.c9
-rw-r--r--scope.c74
-rw-r--r--sv.c95
-rw-r--r--t/lib/charnames.t22
-rw-r--r--t/lib/io_unix.t4
-rwxr-xr-xt/lib/ipc_sysv.t52
-rwxr-xr-xt/op/array.t7
-rw-r--r--util.c22
-rw-r--r--win32/config_H.bc90
-rw-r--r--win32/config_H.gc90
-rw-r--r--win32/config_H.vc78
46 files changed, 1328 insertions, 1378 deletions
diff --git a/Configure b/Configure
index 54636fedc2..5dea797c66 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Sun Oct 3 02:41:02 EET DST 1999 [metaconfig 3.0 PL70]
+# Generated on Wed Oct 27 21:32:42 EET DST 1999 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.com)
cat >/tmp/c1$$ <<EOF
@@ -353,8 +353,10 @@ d_fgetpos=''
d_flexfnam=''
d_flock=''
d_fork=''
+d_fs_data_s=''
d_fseeko=''
d_fsetpos=''
+d_fstatfs=''
d_ftello=''
d_ftime=''
d_gettimeod=''
@@ -370,6 +372,7 @@ d_phostname=''
d_uname=''
d_gethostprotos=''
d_getlogin=''
+d_getmnt=''
d_getmntent=''
d_getnbyaddr=''
d_getnbyname=''
@@ -408,7 +411,6 @@ longdblsize=''
d_longlong=''
longlongsize=''
d_lstat=''
-d_madvise=''
d_mblen=''
d_mbstowcs=''
d_mbtowc=''
@@ -420,16 +422,11 @@ d_memset=''
d_mkdir=''
d_mkfifo=''
d_mktime=''
-d_mmap=''
-mmaptype=''
-d_mprotect=''
d_msg=''
d_msgctl=''
d_msgget=''
d_msgrcv=''
d_msgsnd=''
-d_msync=''
-d_munmap=''
d_nice=''
d_open3=''
d_fpathconf=''
@@ -448,7 +445,6 @@ d_rewinddir=''
d_seekdir=''
d_telldir=''
d_readlink=''
-d_readv=''
d_rename=''
d_rmdir=''
d_safebcpy=''
@@ -495,25 +491,21 @@ d_shmdt=''
d_shmget=''
d_sigaction=''
d_sigsetjmp=''
-d_cmsghdr_s=''
d_msg_ctrunc=''
d_msg_dontroute=''
d_msg_oob=''
d_msg_peek=''
d_msg_proxy=''
-d_msghdr_s=''
d_oldsock=''
-d_recvmsg=''
d_scm_rights=''
-d_sendmsg=''
d_socket=''
d_sockpair=''
sockethdr=''
socketlib=''
+d_sqrtl=''
d_statblks=''
-d_fstatfs=''
-d_statfs=''
-d_statfsflags=''
+d_statfs_f_flags=''
+d_statfs_s=''
d_fstatvfs=''
d_statvfs=''
d_stdio_cnt_lval=''
@@ -554,6 +546,7 @@ d_umask=''
d_semctl_semid_ds=''
d_semctl_semun=''
d_union_semun=''
+d_ustat=''
d_vfork=''
usevfork=''
d_voidsig=''
@@ -565,7 +558,6 @@ d_wait4=''
d_waitpid=''
d_wcstombs=''
d_wctomb=''
-d_writev=''
dlext=''
cccdlflags=''
ccdlflags=''
@@ -639,7 +631,6 @@ i_bsdioctl=''
i_sysfilio=''
i_sysioctl=''
i_syssockio=''
-i_sysmman=''
i_sysmount=''
i_sysndir=''
i_sysparam=''
@@ -647,12 +638,14 @@ i_sysresrc=''
i_syssecrt=''
i_sysselct=''
i_sysstat=''
+i_sysstatfs=''
i_sysstatvfs=''
i_systimes=''
i_systypes=''
d_iovec_s=''
i_sysuio=''
i_sysun=''
+i_sysvfs=''
i_syswait=''
i_sgtty=''
i_termio=''
@@ -662,6 +655,7 @@ i_systimek=''
i_time=''
timeincl=''
i_unistd=''
+i_ustat=''
i_utime=''
i_values=''
i_stdarg=''
@@ -794,6 +788,9 @@ sig_num_init=''
installsitearch=''
sitearch=''
sitearchexp=''
+installsitebin=''
+sitebin=''
+sitebinexp=''
installsitelib=''
sitelib=''
sitelibexp=''
@@ -831,9 +828,12 @@ usesocks=''
d_oldpthreads=''
usethreads=''
incpath=''
-mips=''
mips_type=''
usrinc=''
+d_vendorbin=''
+installvendorbin=''
+vendorbin=''
+vendorbinexp=''
d_vendorlib=''
installvendorlib=''
vendorlib=''
@@ -6536,6 +6536,23 @@ else
installsitearch="$sitearchexp"
fi
+: determine where add-on public executables go
+case "$sitebin" in
+'') dflt=$siteprefix/bin ;;
+*) dflt=$sitebin ;;
+esac
+fn=d~
+rp='Pathname where the add-on public executables should be installed?'
+. ./getfile
+sitebin="$ans"
+sitebinexp="$ansexp"
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+ installsitebin=`echo $sitebinexp | sed "s#^$prefix#$installprefix#"`
+else
+ installsitebin="$sitebinexp"
+fi
+
cat <<EOM
Perl can be built to take advantage of long doubles which
@@ -6603,6 +6620,28 @@ esac
set useperlio
eval $setvar
+case "$vendorprefix" in
+'') d_vendorbin="$undef"
+ vendorbin=''
+ vendorbinexp=''
+ ;;
+*) d_vendorbin="$define"
+ : determine where vendor-supplied executables go.
+ dflt=$vendorprefix/bin
+ fn=d~+
+ rp='Pathname for the vendor-supplied executables directory?'
+ . ./getfile
+ vendorbin="$ans"
+ vendorbinexp="$ansexp"
+ : Change installation prefix, if necessary.
+ if $test X"$prefix" != X"$installprefix"; then
+ installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
+ else
+ installvendorbin="$vendorbinexp"
+ fi
+ ;;
+esac
+
: Check how to convert floats to strings.
if test "X$d_Gconvert" = X; then
echo " "
@@ -7659,147 +7698,6 @@ eval $inlibc
set chsize d_chsize
eval $inlibc
-hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-echo "int main () { struct $struct foo; foo.$field = 0; }" >> try.c;
-if $cc $optimize $ccflags -c try.c >/dev/null 2>&1; then
- val="$define";
-else
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm -f try.c try.o'
-
-: see if this is a sys/uio.h system
-set sys/uio.h i_sysuio
-eval $inhdr
-
-echo "Checking to see if your system supports struct iovec..." >&4
-set d_iovec_s iovec iov_base $i_sysuio sys/uio.h
-eval $hasfield
-case "$d_iovec_s" in
-"$define") echo "Yup, it does." >&4
- ;;
-*) echo "Nope, it doesn't." >&4
- ;;
-esac
-
-socketlib=''
-sockethdr=''
-: see whether socket exists
-echo " "
-$echo $n "Hmm... $c" >&4
-if set socket val -f d_socket; eval $csym; $val; then
- echo "Looks like you have Berkeley networking support." >&4
- d_socket="$define"
- if set setsockopt val -f; eval $csym; $val; then
- d_oldsock="$undef"
- else
- echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4
- d_oldsock="$define"
- fi
-else
- if $contains socklib libc.list >/dev/null 2>&1; then
- echo "Looks like you have Berkeley networking support." >&4
- d_socket="$define"
- : we will have to assume that it supports the 4.2 BSD interface
- d_oldsock="$undef"
- else
- echo "You don't have Berkeley networking in libc$_a..." >&4
- if test "X$d_socket" = "X$define"; then
- echo "...but you seem to believe that you have sockets." >&4
- else
- for net in net socket
- do
- if test -f /usr/lib/lib$net$_a; then
- ( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \
- $ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list
- if $contains socket libc.list >/dev/null 2>&1; then
- d_socket="$define"
- socketlib="-l$net"
- case "$net" in
- net)
- echo "...but the Wollongong group seems to have hacked it in." >&4
- sockethdr="-I/usr/netinclude"
- ;;
- esac
- echo "Found Berkeley sockets interface in lib$net." >& 4
- if $contains setsockopt libc.list >/dev/null 2>&1; then
- d_oldsock="$undef"
- else
- echo "...using the old BSD 4.1c interface, rather than 4.2." >&4
- d_oldsock="$define"
- fi
- break
- fi
- fi
- done
- if test "X$d_socket" != "X$define"; then
- echo "or anywhere else I see." >&4
- d_socket="$undef"
- d_oldsock="$undef"
- fi
- fi
- fi
-fi
-
-: see if socketpair exists
-set socketpair d_sockpair
-eval $inlibc
-
-
-echo " "
-echo "Checking the availability of certain socket constants..." >& 4
-for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do
- enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'`
- $cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-int main() {
- int i = $ENUM;
-}
-EOF
- val="$undef"
- set try; if eval $compile; then
- val="$define"
- fi
- set d_${enum}; eval $setvar
- $rm -f try.c try
-done
-
-set sendmsg d_sendmsg
-eval $inlibc
-
-set recvmsg d_recvmsg
-eval $inlibc
-
-echo " "
-$echo $n "Checking to see if your system supports struct msghdr...$c" >&4
-set d_msghdr_s msghdr msg_name define sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
-eval $hasfield
-case "$d_msghdr_s" in
-"$define") echo "Yup, it does." >&4
- ;;
-*) echo "Nope, it doesn't." >&4
- ;;
-esac
-
-$echo $n "Checking to see if your system supports struct cmsghdr...$c" >&4
-set d_cmsghdr_s cmsghdr cmsg_len define sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
-eval $hasfield
-case "$d_cmsghdr_s" in
-"$define") echo "Yup, it does." >&4
- ;;
-*) echo "Nope, it doesn't." >&4
- ;;
-esac
-
: check for const keyword
echo " "
echo 'Checking to see if your C compiler knows about "const"...' >&4
@@ -8393,6 +8291,107 @@ eval $inlibc
set fcntl d_fcntl
eval $inlibc
+hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
+while $test $# -ge 2; do
+ case "$1" in
+ $define) echo "#include <$2>";;
+ esac ;
+ shift 2;
+done > try.c;
+echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c;
+set try;
+if eval $compile; then
+ val="$define";
+else
+ val="$undef";
+fi;
+set $varname;
+eval $setvar;
+$rm -f try.c try.o'
+
+socketlib=''
+sockethdr=''
+: see whether socket exists
+echo " "
+$echo $n "Hmm... $c" >&4
+if set socket val -f d_socket; eval $csym; $val; then
+ echo "Looks like you have Berkeley networking support." >&4
+ d_socket="$define"
+ if set setsockopt val -f; eval $csym; $val; then
+ d_oldsock="$undef"
+ else
+ echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4
+ d_oldsock="$define"
+ fi
+else
+ if $contains socklib libc.list >/dev/null 2>&1; then
+ echo "Looks like you have Berkeley networking support." >&4
+ d_socket="$define"
+ : we will have to assume that it supports the 4.2 BSD interface
+ d_oldsock="$undef"
+ else
+ echo "You don't have Berkeley networking in libc$_a..." >&4
+ if test "X$d_socket" = "X$define"; then
+ echo "...but you seem to believe that you have sockets." >&4
+ else
+ for net in net socket
+ do
+ if test -f /usr/lib/lib$net$_a; then
+ ( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \
+ $ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list
+ if $contains socket libc.list >/dev/null 2>&1; then
+ d_socket="$define"
+ socketlib="-l$net"
+ case "$net" in
+ net)
+ echo "...but the Wollongong group seems to have hacked it in." >&4
+ sockethdr="-I/usr/netinclude"
+ ;;
+ esac
+ echo "Found Berkeley sockets interface in lib$net." >& 4
+ if $contains setsockopt libc.list >/dev/null 2>&1; then
+ d_oldsock="$undef"
+ else
+ echo "...using the old BSD 4.1c interface, rather than 4.2." >&4
+ d_oldsock="$define"
+ fi
+ break
+ fi
+ fi
+ done
+ if test "X$d_socket" != "X$define"; then
+ echo "or anywhere else I see." >&4
+ d_socket="$undef"
+ d_oldsock="$undef"
+ fi
+ fi
+ fi
+fi
+
+: see if socketpair exists
+set socketpair d_sockpair
+eval $inlibc
+
+
+echo " "
+echo "Checking the availability of certain socket constants..." >& 4
+for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do
+ enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'`
+ $cat >try.c <<EOF
+#include <sys/types.h>
+#include <sys/socket.h>
+int main() {
+ int i = $ENUM;
+}
+EOF
+ val="$undef"
+ set try; if eval $compile; then
+ val="$define"
+ fi
+ set d_${enum}; eval $setvar
+ $rm -f try.c try
+done
+
: see if sys/select.h has to be included
set sys/select.h i_sysselct
eval $inhdr
@@ -8617,13 +8616,23 @@ $rm -f try.*
set d_fpos64_t
eval $setvar
-: see if fseeko exists
-set fseeko d_fseeko
-eval $inlibc
-
-: see if fsetpos exists
-set fsetpos d_fsetpos
-eval $inlibc
+hasstruct='varname=$1; struct=$2; shift; shift;
+while $test $# -ge 2; do
+ case "$1" in
+ $define) echo "#include <$2>";;
+ esac ;
+ shift 2;
+done > try.c;
+echo "int main () { struct $struct foo; }" >> try.c;
+set try;
+if eval $compile; then
+ val="$define";
+else
+ val="$undef";
+fi;
+set $varname;
+eval $setvar;
+$rm -f try.c try.o'
: see if this is a sys/param system
set sys/param.h i_sysparam
@@ -8633,19 +8642,33 @@ eval $inhdr
set sys/mount.h i_sysmount
eval $inhdr
+: see if sys/types.h has to be included
+set sys/types.h i_systypes
+eval $inhdr
+
+
+echo " "
+echo "Checking to see if your system supports struct fs_data..." >&4
+set d_fs_data_s fs_data $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h
+eval $hasstruct
+case "$d_fs_data_s" in
+"$define") echo "Yup, it does." >&4 ;;
+*) echo "Nope, it doesn't." >&4 ;;
+esac
-: see if statfs exists
-set statfs d_statfs
+: see if fseeko exists
+set fseeko d_fseeko
eval $inlibc
+: see if fsetpos exists
+set fsetpos d_fsetpos
+eval $inlibc
+
+
: see if fstatfs exists
set fstatfs d_fstatfs
eval $inlibc
-: see if statfs knows about mount flags
-set d_statfsflags statfs f_flags $i_sysparam sys/param.h $i_sysmount sys/mount.h
-eval $hasfield
-
: see if statvfs exists
set statvfs d_statvfs
@@ -8774,6 +8797,10 @@ eval $hasproto
set getlogin d_getlogin
eval $inlibc
+: see if getmnt exists
+set getmnt d_getmnt
+eval $inlibc
+
: see if getmntent exists
set getmntent d_getmntent
eval $inlibc
@@ -9116,10 +9143,6 @@ eval $inlibc
set lstat d_lstat
eval $inlibc
-: see if madvise exists
-set madvise d_madvise
-eval $inlibc
-
: see if mblen exists
set mblen d_mblen
eval $inlibc
@@ -9164,37 +9187,6 @@ eval $inlibc
set mktime d_mktime
eval $inlibc
-: see if this is a sys/mman.h system
-set sys/mman.h i_sysmman
-eval $inhdr
-
-: see if mmap exists
-set mmap d_mmap
-eval $inlibc
-: see what shmat returns
-: default to something harmless
-mmaptype='void *'
-case "$i_sysmman$d_mmap" in
-"$define$define")
- $cat >mmap.c <<'END'
-#include <sys/mman.h>
-void *mmap();
-END
- if $cc $ccflags -c mmap.c >/dev/null 2>&1; then
- mmaptype='void *'
- else
- mmaptype='caddr_t'
- fi
- echo "and it returns ($mmaptype)." >&4
- ;;
-esac
-
-
-
-: see if mprotect exists
-set mprotect d_mprotect
-eval $inlibc
-
: see if msgctl exists
set msgctl d_msgctl
eval $inlibc
@@ -9247,14 +9239,6 @@ fi
set d_msg
eval $setvar
-: see if msync exists
-set msync d_msync
-eval $inlibc
-
-: see if munmap exists
-set munmap d_munmap
-eval $inlibc
-
: see if nice exists
set nice d_nice
eval $inlibc
@@ -9508,10 +9492,6 @@ eval $inlibc
set readlink d_readlink
eval $inlibc
-: see if readv exists
-set readv d_readv
-eval $inlibc
-
: see if rename exists
set rename d_rename
eval $inlibc
@@ -10281,15 +10261,61 @@ set d_sigsetjmp
eval $setvar
$rm -f try.c try
+: see if sqrtl exists
+set sqrtl d_sqrtl
+eval $inlibc
+
: see if sys/stat.h is available
set sys/stat.h i_sysstat
eval $inhdr
+
: see if stat knows about block sizes
echo " "
+echo "Checking to see if your struct stat has st_blocks field..." >&4
set d_statblks stat st_blocks $i_sysstat sys/stat.h
eval $hasfield
+
+: see if this is a sys/vfs.h system
+set sys/vfs.h i_sysvfs
+eval $inhdr
+
+
+: see if this is a sys/statfs.h system
+set sys/statfs.h i_sysstatfs
+eval $inhdr
+
+
+echo " "
+echo "Checking to see if your system supports struct statfs..." >&4
+set d_statfs_s statfs $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h
+eval $hasstruct
+case "$d_statfs_s" in
+"$define") echo "Yup, it does." >&4 ;;
+*) echo "Nope, it doesn't." >&4 ;;
+esac
+
+
+
+: see if struct statfs knows about f_flags
+case "$d_statfs_s" in
+define)
+ echo " "
+ echo "Checking to see if your struct statfs has f_flags field..." >&4
+ set d_statfs_f_flags statfs f_flags $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h
+ eval $hasfield
+ ;;
+*) val="$undef"
+ set d_statfs_f_flags
+ eval $setvar
+ ;;
+esac
+case "$d_statfs_f_flags" in
+"$define") echo "Yup, it does." >&4 ;;
+*) echo "Nope, it doesn't." >&4 ;;
+esac
+
: see if _ptr and _cnt from stdio act std
echo " "
if $contains '_IO_fpos_t' `./findhdr stdio.h` `./findhdr libio.h` >/dev/null 2>&1 ; then
@@ -10563,10 +10589,6 @@ eval $inlibc
set tcsetpgrp d_tcsetpgrp
eval $inlibc
-: see if sys/types.h has to be included
-set sys/types.h i_systypes
-eval $inhdr
-
: see if prototype for telldir is available
echo " "
set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
@@ -10670,6 +10692,10 @@ eval $setvar
set umask d_umask
eval $inlibc
+: see if ustat exists
+set ustat d_ustat
+eval $inlibc
+
: backward compatibility for d_hvfork
if test X$d_hvfork != X; then
d_vfork="$d_hvfork"
@@ -10829,10 +10855,6 @@ eval $inlibc
set wctomb d_wctomb
eval $inlibc
-: see if writev exists
-set writev d_writev
-eval $inlibc
-
: preserve RCS keywords in files with variable substitution, grrr
Date='$Date'
Id='$Id'
@@ -13047,6 +13069,20 @@ eval $inhdr
set sys/statvfs.h i_sysstatvfs
eval $inhdr
+: see if this is a sys/uio.h system
+set sys/uio.h i_sysuio
+eval $inhdr
+
+echo "Checking to see if your system supports struct iovec..." >&4
+set d_iovec_s iovec iov_base $i_sysuio sys/uio.h
+eval $hasfield
+case "$d_iovec_s" in
+"$define") echo "Yup, it does." >&4
+ ;;
+*) echo "Nope, it doesn't." >&4
+ ;;
+esac
+
: see if this is a sys/un.h system
set sys/un.h i_sysun
eval $inhdr
@@ -13055,6 +13091,10 @@ eval $inhdr
set sys/wait.h i_syswait
eval $inhdr
+: see if this is a ustat.h system
+set ustat.h i_ustat
+eval $inhdr
+
: see if this is an utime system
set utime.h i_utime
eval $inhdr
@@ -13493,7 +13533,6 @@ d_chown='$d_chown'
d_chroot='$d_chroot'
d_chsize='$d_chsize'
d_closedir='$d_closedir'
-d_cmsghdr_s='$d_cmsghdr_s'
d_const='$d_const'
d_crypt='$d_crypt'
d_csh='$d_csh'
@@ -13529,6 +13568,7 @@ d_flock='$d_flock'
d_fork='$d_fork'
d_fpathconf='$d_fpathconf'
d_fpos64_t='$d_fpos64_t'
+d_fs_data_s='$d_fs_data_s'
d_fseeko='$d_fseeko'
d_fsetpos='$d_fsetpos'
d_fstatfs='$d_fstatfs'
@@ -13543,6 +13583,7 @@ d_gethent='$d_gethent'
d_gethname='$d_gethname'
d_gethostprotos='$d_gethostprotos'
d_getlogin='$d_getlogin'
+d_getmnt='$d_getmnt'
d_getmntent='$d_getmntent'
d_getnbyaddr='$d_getnbyaddr'
d_getnbyname='$d_getnbyname'
@@ -13584,7 +13625,6 @@ d_lockf='$d_lockf'
d_longdbl='$d_longdbl'
d_longlong='$d_longlong'
d_lstat='$d_lstat'
-d_madvise='$d_madvise'
d_mblen='$d_mblen'
d_mbstowcs='$d_mbstowcs'
d_mbtowc='$d_mbtowc'
@@ -13596,8 +13636,6 @@ d_memset='$d_memset'
d_mkdir='$d_mkdir'
d_mkfifo='$d_mkfifo'
d_mktime='$d_mktime'
-d_mmap='$d_mmap'
-d_mprotect='$d_mprotect'
d_msg='$d_msg'
d_msg_ctrunc='$d_msg_ctrunc'
d_msg_dontroute='$d_msg_dontroute'
@@ -13606,11 +13644,8 @@ d_msg_peek='$d_msg_peek'
d_msg_proxy='$d_msg_proxy'
d_msgctl='$d_msgctl'
d_msgget='$d_msgget'
-d_msghdr_s='$d_msghdr_s'
d_msgrcv='$d_msgrcv'
d_msgsnd='$d_msgsnd'
-d_msync='$d_msync'
-d_munmap='$d_munmap'
d_mymalloc='$d_mymalloc'
d_nice='$d_nice'
d_off64_t='$d_off64_t'
@@ -13635,8 +13670,6 @@ d_pwpasswd='$d_pwpasswd'
d_pwquota='$d_pwquota'
d_readdir='$d_readdir'
d_readlink='$d_readlink'
-d_readv='$d_readv'
-d_recvmsg='$d_recvmsg'
d_rename='$d_rename'
d_rewinddir='$d_rewinddir'
d_rmdir='$d_rmdir'
@@ -13653,7 +13686,6 @@ d_semctl_semid_ds='$d_semctl_semid_ds'
d_semctl_semun='$d_semctl_semun'
d_semget='$d_semget'
d_semop='$d_semop'
-d_sendmsg='$d_sendmsg'
d_setegid='$d_setegid'
d_seteuid='$d_seteuid'
d_setgrent='$d_setgrent'
@@ -13689,9 +13721,10 @@ d_sigaction='$d_sigaction'
d_sigsetjmp='$d_sigsetjmp'
d_socket='$d_socket'
d_sockpair='$d_sockpair'
+d_sqrtl='$d_sqrtl'
d_statblks='$d_statblks'
-d_statfs='$d_statfs'
-d_statfsflags='$d_statfsflags'
+d_statfs_f_flags='$d_statfs_f_flags'
+d_statfs_s='$d_statfs_s'
d_statvfs='$d_statvfs'
d_stdio_cnt_lval='$d_stdio_cnt_lval'
d_stdio_ptr_lval='$d_stdio_ptr_lval'
@@ -13726,6 +13759,8 @@ d_tzname='$d_tzname'
d_umask='$d_umask'
d_uname='$d_uname'
d_union_semun='$d_union_semun'
+d_ustat='$d_ustat'
+d_vendorbin='$d_vendorbin'
d_vendorlib='$d_vendorlib'
d_vfork='$d_vfork'
d_void_closedir='$d_void_closedir'
@@ -13737,7 +13772,6 @@ d_wait4='$d_wait4'
d_waitpid='$d_waitpid'
d_wcstombs='$d_wcstombs'
d_wctomb='$d_wctomb'
-d_writev='$d_writev'
d_xenix='$d_xenix'
date='$date'
db_hashtype='$db_hashtype'
@@ -13822,7 +13856,6 @@ i_sysfile='$i_sysfile'
i_sysfilio='$i_sysfilio'
i_sysin='$i_sysin'
i_sysioctl='$i_sysioctl'
-i_sysmman='$i_sysmman'
i_sysmount='$i_sysmount'
i_sysndir='$i_sysndir'
i_sysparam='$i_sysparam'
@@ -13831,6 +13864,7 @@ i_syssecrt='$i_syssecrt'
i_sysselct='$i_sysselct'
i_syssockio='$i_syssockio'
i_sysstat='$i_sysstat'
+i_sysstatfs='$i_sysstatfs'
i_sysstatvfs='$i_sysstatvfs'
i_systime='$i_systime'
i_systimek='$i_systimek'
@@ -13838,11 +13872,13 @@ i_systimes='$i_systimes'
i_systypes='$i_systypes'
i_sysuio='$i_sysuio'
i_sysun='$i_sysun'
+i_sysvfs='$i_sysvfs'
i_syswait='$i_syswait'
i_termio='$i_termio'
i_termios='$i_termios'
i_time='$i_time'
i_unistd='$i_unistd'
+i_ustat='$i_ustat'
i_utime='$i_utime'
i_values='$i_values'
i_varargs='$i_varargs'
@@ -13860,9 +13896,11 @@ installprefixexp='$installprefixexp'
installprivlib='$installprivlib'
installscript='$installscript'
installsitearch='$installsitearch'
+installsitebin='$installsitebin'
installsitelib='$installsitelib'
installstyle='$installstyle'
installusrbinperl='$installusrbinperl'
+installvendorbin='$installvendorbin'
installvendorlib='$installvendorlib'
intsize='$intsize'
known_extensions='$known_extensions'
@@ -13908,10 +13946,8 @@ man3dir='$man3dir'
man3direxp='$man3direxp'
man3ext='$man3ext'
medium='$medium'
-mips='$mips'
mips_type='$mips_type'
mkdir='$mkdir'
-mmaptype='$mmaptype'
models='$models'
modetype='$modetype'
more='$more'
@@ -14002,6 +14038,8 @@ sig_num_init='$sig_num_init'
signal_t='$signal_t'
sitearch='$sitearch'
sitearchexp='$sitearchexp'
+sitebin='$sitebin'
+sitebinexp='$sitebinexp'
sitelib='$sitelib'
sitelibexp='$sitelibexp'
siteprefix='$siteprefix'
@@ -14067,6 +14105,8 @@ usevendorprefix='$usevendorprefix'
usevfork='$usevfork'
usrinc='$usrinc'
uuname='$uuname'
+vendorbin='$vendorbin'
+vendorbinexp='$vendorbinexp'
vendorlib='$vendorlib'
vendorlibexp='$vendorlibexp'
vendorprefix='$vendorprefix'
diff --git a/Makefile.SH b/Makefile.SH
index b60715eec2..ef1a0e2a98 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -194,6 +194,10 @@ SHELL = $sh
# how to tr(anslate) newlines
TRNL = '$trnl'
+# not used by Makefile but by installperl;
+# mentioned here so that metaconfig picks it up
+INSTALL_USR_BIN_PERL = $installusrbinperl
+
!GROK!THIS!
## In the following dollars and backticks do not need the extra backslash.
diff --git a/Policy_sh.SH b/Policy_sh.SH
index 30088431c8..133a9faba4 100644
--- a/Policy_sh.SH
+++ b/Policy_sh.SH
@@ -29,12 +29,23 @@ case "\$perladmin" in
'') perladmin='$perladmin' ;;
esac
-# Installation prefix. Allow a Configure -D override. You
+# Installation prefixes. Allow a Configure -D override. You
# may wish to reinstall perl under a different prefix, perhaps
# in order to test a different configuration.
case "\$prefix" in
'') prefix='$prefix' ;;
esac
+case "\$siteprefix" in
+'') siteprefix='$siteprefix' ;;
+esac
+case "\$vendorprefix" in
+'') vendorprefix='$vendorprefix' ;;
+esac
+
+# Where installperl puts things.
+case "\$installprefix" in
+'') installprefix='$installprefix' ;;
+esac
# Installation directives. Note that each one comes in three flavors.
# For example, we have privlib, privlibexp, and installprivlib.
@@ -44,7 +55,12 @@ esac
# out automatically by Configure, so you don't have to include it here.
# installprivlib is for systems (such as those running AFS) that
# need to distinguish between the place where things
-# get installed and where they finally will reside.
+# get installed and where they finally will reside. As of 5.005_6x,
+# this too is handled automatically by Configure based on
+# $installprefix, so it isn't included here either.
+#
+# See Porting/Glossary for the definitions of these names, and see the
+# INSTALL file for some examples.
#
# In each case, if your previous value was the default, leave it commented
# out. That way, if you override prefix, all of these will be
@@ -56,13 +72,17 @@ esac
!GROK!THIS!
-for var in bin scriptdir privlib archlib \
- man1dir man3dir sitelib sitearch \
- installbin installscript installprivlib installarchlib \
- installman1dir installman3dir installsitelib installsitearch \
- man1ext man3ext; do
+for var in \
+ bin scriptdir privlib archlib man1dir man3dir html1dir html3dir \
+ sitebin sitescriptdir sitelib sitearch \
+ siteman1dir siteman3dir sitehtml1dir sitehtml3dir \
+ vendorbin vendorscript vendorlib vendorarch \
+ vendorman1 vendorman3 vendorhtml1 vendorhtml3
+do
case "$var" in
+
+ # Directories for the core perl components
bin) dflt=$prefix/bin ;;
# The scriptdir test is more complex, but this is probably usually ok.
scriptdir)
@@ -78,47 +98,76 @@ for var in bin scriptdir privlib archlib \
*) dflt=$prefix/lib/$package/$version ;;
esac
;;
- archlib)
- case "$prefix" in
- *perl*) dflt=$prefix/lib/$version/$archname ;;
- *) dflt=$prefix/lib/$package/$version/$archname ;;
- esac
+ archlib) dflt="$privlib/$archname" ;;
+
+ man1dir) dflt="$prefix/man/man1" ;;
+ man3dir) dflt="$prefix/man/man3" ;;
+ # Can we assume all sed's have greedy matching?
+ man1ext) dflt=`echo $man1dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
+ man3ext) dflt=`echo $man3dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
+
+ # We don't know what to do with these yet.
+ html1dir) dflt='' ;;
+ htm31dir) dflt='' ;;
+
+ # Site-specific add-ons.
+ sitebin) dflt=$siteprefix/bin ;;
+ # The scriptdir test is more complex, but this is probably usually ok.
+ sitescriptdir)
+ if $test -d $siteprefix/script; then
+ dflt=$siteprefix/script
+ else
+ dflt=$sitebin
+ fi
;;
sitelib)
- case "$prefix" in
- *perl*) dflt=$prefix/lib/site_perl/$apiversion ;;
- *) dflt=$prefix/lib/$package/site_perl/$apiversion ;;
- esac
- ;;
- sitearch)
- case "$prefix" in
- *perl*) dflt=$prefix/lib/site_perl/$apiversion/$archname ;;
- *) dflt=$prefix/lib/$package/site_perl/$apiversion/$archname ;;
- esac
- ;;
- man1dir) dflt="$prefix/man/man1" ;;
- man3dir)
- case "$prefix" in
- *perl*) dflt=`echo $man1dir |
- sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'` ;;
- *) dflt=$privlib/man/man3 ;;
+ case "$siteprefix" in
+ *perl*) dflt=$prefix/lib/site_perl ;;
+ *) dflt=$prefix/lib/$package/site_perl ;;
esac
;;
+ sitearch) dflt="$sitelib/$apiversion/$archname" ;;
- # Can we assume all sed's have greedy matching?
- man1ext) dflt=`echo $man1dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
- man3ext) dflt=`echo $man3dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
+ siteman1dir) dflt="$siteprefix/man/man1" ;;
+ siteman3dir) dflt="$siteprefix/man/man3" ;;
+ # We don't know what to do with these yet.
+ sitehtml1dir) dflt='' ;;
+ sitehtm31dir) dflt='' ;;
+
+ # Vendor-specific add-ons. These are all usually empty.
+ vendor*)
+ if test X"$vendorprefix" = X""; then
+ dflt=''
+ else
+ case "$var" in
+ vendorbin) dflt=$vendorprefix/bin ;;
+
+ # The scriptdir test is more complex,
+ # but this is probably usually ok.
+ vendorscriptdir)
+ if $test -d $vendorprefix/script; then
+ dflt=$vendorprefix/script
+ else
+ dflt=$vendorbin
+ fi
+ ;;
+ vendorlib)
+ case "$vendorprefix" in
+ *perl*) dflt=$prefix/lib/vendor_perl ;;
+ *) dflt=$prefix/lib/$package/vendor_perl ;;
+ esac
+ ;;
+ vendorarch) dflt="$vendorlib/$apiversion/$archname" ;;
- # It might be possible to fool these next tests. Please let
- # me know if they don't work right for you.
- installbin) dflt=`echo $binexp | sed 's#^/afs/#/afs/.#'`;;
- installscript) dflt=`echo $scriptdirexp | sed 's#^/afs/#/afs/.#'`;;
- installprivlib) dflt=`echo $privlibexp | sed 's#^/afs/#/afs/.#'`;;
- installarchlib) dflt=`echo $archlibexp | sed 's#^/afs/#/afs/.#'`;;
- installsitelib) dflt=`echo $sitelibexp | sed 's#^/afs/#/afs/.#'`;;
- installsitearch) dflt=`echo $sitearchexp | sed 's#^/afs/#/afs/.#'`;;
- installman1dir) dflt=`echo $man1direxp | sed 's#^/afs/#/afs/.#'`;;
- installman3dir) dflt=`echo $man3direxp | sed 's#^/afs/#/afs/.#'`;;
+ vendorman1dir) dflt="$vendorprefix/man/man1" ;;
+ vendorman3dir) dflt="$vendorprefix/man/man3" ;;
+ # We don't know what to do with these yet.
+ vendorhtml1dir) dflt='' ;;
+ vendorhtm31dir) dflt='' ;;
+
+ esac # End of vendorprefix != ''
+ fi
+ ;;
esac
eval val="\$$var"
@@ -150,4 +199,3 @@ $spitshell <<!GROK!THIS! >>Policy.sh
# This version for Perl5.004_61 originally written by
# Andy Dougherty <doughera@lafcol.lafayette.edu>.
# This file may be distributed under the same terms as Perl itself.
-
diff --git a/Porting/Glossary b/Porting/Glossary
index 4f97fab701..5139c7bb93 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -202,6 +202,10 @@ compress (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
+CONFIGDOTSH (Oldsyms.U):
+ This is set to 'true' in config.sh so that a shell script
+ sourcing config.sh can tell if it has been sourced already.
+
contains (contains.U):
This variable holds the command to do a grep with a proper return
status. On most sane systems it is simply "grep". On insane systems
@@ -372,10 +376,6 @@ d_closedir (d_closedir.U):
This variable conditionally defines HAS_CLOSEDIR if closedir() is
available.
-d_cmsghdr_s (d_socket.U):
- This variable conditionally defines the HAS_STRUCT_CMSGHDR symbol,
- which indicates that the the struct cmsghdr is supported.
-
d_const (d_const.U):
This variable conditionally defines the HASCONST symbol, which
indicates to the C program that this C compiler knows about the
@@ -534,6 +534,10 @@ d_fpathconf (d_pathconf.U):
d_fpos64_t (io64.U):
This symbol will be defined if the C compiler supports fpos64_t.
+d_fs_data_s (d_fs_data_s.U):
+ This variable conditionally defines the HAS_STRUCT_FS_DATA symbol,
+ which indicates that the struct fs_data is supported.
+
d_fseeko (d_fseeko.U):
This variable conditionally defines the HAS_FSEEKO symbol, which
indicates to the C program that the fseeko() routine is available.
@@ -542,7 +546,7 @@ d_fsetpos (d_fsetpos.U):
This variable conditionally defines HAS_FSETPOS if fsetpos() is
available to set the file position indicator.
-d_fstatfs (d_statfs.U):
+d_fstatfs (d_fstatfs.U):
This variable conditionally defines the HAS_FSTATFS symbol, which
indicates to the C program that the fstatfs() routine is available.
@@ -608,10 +612,15 @@ d_getlogin (d_getlogin.U):
indicates to the C program that the getlogin() routine is available
to get the login name.
+d_getmnt (d_getmnt.U):
+ This variable conditionally defines the HAS_GETMNT symbol, which
+ indicates to the C program that the getmnt() routine is available
+ to retrieve one or more mount info blocks by filename.
+
d_getmntent (d_getmntent.U):
This variable conditionally defines the HAS_GETMNTENT symbol, which
indicates to the C program that the getmntent() routine is available
- to iterate through mounted files.
+ to iterate through mounted files to get their mount info.
d_getnbyaddr (d_getnbyad.U):
This variable conditionally defines the HAS_GETNETBYADDR symbol, which
@@ -797,10 +806,6 @@ d_lstat (d_lstat.U):
This variable conditionally defines HAS_LSTAT if lstat() is
available to do file stats on symbolic links.
-d_madvise (d_madvise.U):
- This variable conditionally defines HAS_MADVISE if madvise() is
- available to map a file into memory.
-
d_mblen (d_mblen.U):
This variable conditionally defines the HAS_MBLEN symbol, which
indicates to the C program that the mblen() routine is available
@@ -854,14 +859,6 @@ d_mktime (d_mktime.U):
This variable conditionally defines the HAS_MKTIME symbol, which
indicates to the C program that the mktime() routine is available.
-d_mmap (d_mmap.U):
- This variable conditionally defines HAS_MMAP if mmap() is
- available to map a file into memory.
-
-d_mprotect (d_mprotect.U):
- This variable conditionally defines HAS_MPROTECT if mprotect() is
- available to modify the access protection of a memory mapped file.
-
d_msg (d_msg.U):
This variable conditionally defines the HAS_MSG symbol, which
indicates that the entire msg*(2) library is present.
@@ -899,10 +896,6 @@ d_msgget (d_msgget.U):
This variable conditionally defines the HAS_MSGGET symbol, which
indicates to the C program that the msgget() routine is available.
-d_msghdr_s (d_socket.U):
- This variable conditionally defines the HAS_STRUCT_MSGHDR symbol,
- which indicates that the struct msghdr is supported.
-
d_msgrcv (d_msgrcv.U):
This variable conditionally defines the HAS_MSGRCV symbol, which
indicates to the C program that the msgrcv() routine is available.
@@ -911,14 +904,6 @@ d_msgsnd (d_msgsnd.U):
This variable conditionally defines the HAS_MSGSND symbol, which
indicates to the C program that the msgsnd() routine is available.
-d_msync (d_msync.U):
- This variable conditionally defines HAS_MSYNC if msync() is
- available to synchronize a mapped file.
-
-d_munmap (d_munmap.U):
- This variable conditionally defines HAS_MUNMAP if munmap() is
- available to unmap a region mapped by mmap().
-
d_mymalloc (mallocsrc.U):
This variable conditionally defines MYMALLOC in case other parts
of the source want to take special action if MYMALLOC is used.
@@ -1076,14 +1061,6 @@ d_readlink (d_readlink.U):
indicates to the C program that the readlink() routine is available
to read the value of a symbolic link.
-d_readv (d_readv.U):
- This variable conditionally defines the HAS_READV symbol, which
- indicates to the C program that the readv() routine is available.
-
-d_recvmsg (d_socket.U):
- This variable conditionally defines the HAS_RECVMSG symbol,
- which indicates that the recvmsg is supported.
-
d_rename (d_rename.U):
This variable conditionally defines the HAS_RENAME symbol, which
indicates to the C program that the rename() routine is available
@@ -1153,10 +1130,6 @@ d_semop (d_semop.U):
This variable conditionally defines the HAS_SEMOP symbol, which
indicates to the C program that the semop() routine is available.
-d_sendmsg (d_socket.U):
- This variable conditionally defines the HAS_SENDMSG symbol,
- which indicates that the sendmsg is supported.
-
d_setegid (d_setegid.U):
This variable conditionally defines the HAS_SETEGID symbol, which
indicates to the C program that the setegid() routine is available
@@ -1314,21 +1287,25 @@ d_sockpair (d_socket.U):
This variable conditionally defines the HAS_SOCKETPAIR symbol, which
indicates that the BSD socketpair() is supported.
+d_sqrtl (d_sqrtl.U):
+ This variable conditionally defines the HAS_SQRTL symbol, which
+ indicates to the C program that the sqrtl() routine is available.
+
d_statblks (d_statblks.U):
This variable conditionally defines USE_STAT_BLOCKS
if this system has a stat structure declaring
st_blksize and st_blocks.
-d_statfs (d_statfs.U):
- This variable conditionally defines the HAS_STATFS symbol, which
- indicates to the C program that the statfs() routine is available.
-
-d_statfsflags (d_statfs.U):
- This variable conditionally defines the HAS_STRUCT_STATFS_FLAGS
+d_statfs_f_flags (d_statfs_f_flags.U):
+ This variable conditionally defines the HAS_STRUCT_STATFS_F_FLAGS
symbol, which indicates to struct statfs from has f_flags member.
This kind of struct statfs is coming from sys/mount.h (BSD),
not from sys/statfs.h (SYSV).
+d_statfs_s (d_statfs_s.U):
+ This variable conditionally defines the HAS_STRUCT_STATFS symbol,
+ which indicates that the struct statfs is supported.
+
d_statvfs (d_statvfs.U):
This variable conditionally defines the HAS_STATVFS symbol, which
indicates to the C program that the statvfs() routine is available.
@@ -1483,6 +1460,13 @@ d_union_semun (d_union_semun.U):
This variable conditionally defines HAS_UNION_SEMUN if the
union semun is defined by including <sys/sem.h>.
+d_ustat (d_ustat.U):
+ This variable conditionally defines HAS_USTAT if ustat() is
+ available to query file system statistics by dev_t.
+
+d_vendorbin (vendorbin.U):
+ This variable conditionally defines PERL_VENDORBIN.
+
d_vendorlib (vendorlib.U):
This variable conditionally defines PERL_VENDORLIB.
@@ -1533,10 +1517,6 @@ d_wctomb (d_wctomb.U):
indicates to the C program that the wctomb() routine is available
to convert a wide character to a multibyte.
-d_writev (d_writev.U):
- This variable conditionally defines the HAS_WRITEV symbol, which
- indicates to the C program that the writev() routine is available.
-
d_xenix (Guess.U):
This variable conditionally defines the symbol XENIX, which alerts
the C program that it runs under Xenix.
@@ -1928,10 +1908,6 @@ i_sysioctl (i_sysioctl.U):
indicates to the C program that <sys/ioctl.h> exists and should
be included.
-i_sysmman (i_sysmman.U):
- This variable conditionally defines the I_SYS_MMAN symbol, and
- indicates whether a C program should include <sys/mman.h>.
-
i_sysmount (i_sysmount.U):
This variable conditionally defines the I_SYSMOUNT symbol,
and indicates whether a C program should include <sys/mount.h>.
@@ -1966,6 +1942,10 @@ i_sysstat (i_sysstat.U):
This variable conditionally defines the I_SYS_STAT symbol,
and indicates whether a C program should include <sys/stat.h>.
+i_sysstatfs (i_sysstatfs.U):
+ This variable conditionally defines the I_SYSSTATFS symbol,
+ and indicates whether a C program should include <sys/statfs.h>.
+
i_sysstatvfs (i_sysstatvfs.U):
This variable conditionally defines the I_SYSSTATVFS symbol,
and indicates whether a C program should include <sys/statvfs.h>.
@@ -1996,6 +1976,10 @@ i_sysun (i_sysun.U):
to the C program that it should include <sys/un.h> to get UNIX
domain socket definitions.
+i_sysvfs (i_sysvfs.U):
+ This variable conditionally defines the I_SYSVFS symbol,
+ and indicates whether a C program should include <sys/vfs.h>.
+
i_syswait (i_syswait.U):
This variable conditionally defines I_SYS_WAIT, which indicates
to the C program that it should include <sys/wait.h>.
@@ -2018,6 +2002,10 @@ i_unistd (i_unistd.U):
This variable conditionally defines the I_UNISTD symbol, and indicates
whether a C program should include <unistd.h>.
+i_ustat (i_ustat.U):
+ This variable conditionally defines the I_USTAT symbol, and indicates
+ whether a C program should include <ustat.h>.
+
i_utime (i_utime.U):
This variable conditionally defines the I_UTIME symbol, and indicates
whether a C program should include <utime.h>.
@@ -2102,6 +2090,11 @@ installsitearch (sitearch.U):
those systems using AFS. For extra portability, only this variable
should be used in makefiles.
+installsitebin (sitebin.U):
+ This variable is usually the same as sitebinexp, unless you are on
+ a system running AFS, in which case they may differ slightly. You
+ should always use this variable within your makefiles for portability.
+
installsitelib (sitelib.U):
This variable is really the same as sitelibexp but may differ on
those systems using AFS. For extra portability, only this variable
@@ -2130,6 +2123,11 @@ installusrbinperl (instubperl.U):
/usr/bin/perl in addition to
$installbin/perl
+installvendorbin (vendorbin.U):
+ This variable is really the same as vendorbinexp but may differ on
+ those systems using AFS. For extra portability, only this variable
+ should be used in makefiles.
+
installvendorlib (vendorlib.U):
This variable is really the same as vendorlibexp but may differ on
those systems using AFS. For extra portability, only this variable
@@ -2365,11 +2363,6 @@ mkdir (Loc.U):
full pathname (if any) of the mkdir program. After Configure runs,
the value is reset to a plain "mkdir" and is not useful.
-mmaptype (d_mmap.U):
- This symbol contains the type of pointer returned by mmap()
- (and simultaneously the type of the first argument).
- It can be 'void *' or 'caddr_t'.
-
models (models.U):
This variable contains the list of memory models supported by this
system. Possible component values are none, split, unsplit, small,
@@ -2532,6 +2525,24 @@ perl (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
+PERL_APIVERSION (Oldsyms.U):
+ This value is manually set in patchlevel.h and is used
+ to set the Configure apiversion variable.
+
+PERL_REVISION (Oldsyms.U):
+ In a Perl version number such as 5.6.2, this is the 5.
+ This value is manually set in patchlevel.h
+
+PERL_SUBVERSION (Oldsyms.U):
+ In a Perl version number such as 5.6.2, this is the 2.
+ Values greater than 50 represent potentially unstable
+ development subversions.
+ This value is manually set in patchlevel.h
+
+PERL_VERSION (Oldsyms.U):
+ In a Perl version number such as 5.6.2, this is the 6.
+ This value is manually set in patchlevel.h
+
perladmin (perladmin.U):
Electronic mail address of the perl5 administrator.
@@ -2779,6 +2790,16 @@ sitearchexp (sitearch.U):
This variable is the ~name expanded version of sitearch, so that you
may use it directly in Makefiles or shell scripts.
+sitebin (sitebin.U):
+ This variable holds the name of the directory in which the user wants
+ to put add-on publicly executable files for the package in question. It
+ is most often a local directory such as /usr/local/bin. Programs using
+ this variable must be prepared to deal with ~name substitution.
+
+sitebinexp (sitebin.U):
+ This is the same as the sitebin variable, but is filename expanded at
+ configuration time, for use in your makefiles.
+
sitelib (sitelib.U):
This variable contains the eventual value of the SITELIB symbol,
which is the name of the private library for this package. It may
@@ -3136,6 +3157,18 @@ uuname (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
+vendorbin (vendorbin.U):
+ This variable contains the eventual value of the VENDORBIN symbol,
+ which is the name of the private directory for exuctables for this package.
+ It may have a ~ on the front. It is up to the makefile to eventually create
+ this directory while performing installation (with ~ substitution).
+ Vendors who distribute perl binaries may place their own
+ extensions and modules in this directory.
+
+vendorbinexp (vendorbin.U):
+ This variable is the ~name expanded version of vendorbin, so that you
+ may use it directly in Makefiles or shell scripts.
+
vendorlib (vendorlib.U):
This variable contains the eventual value of the VENDORLIB symbol,
which is the name of the private library for this package. It may
diff --git a/Porting/config.sh b/Porting/config.sh
index b156c87348..4090810951 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -8,7 +8,7 @@
# Package name : perl5
# Source directory : .
-# Configuration time: Sun Oct 3 02:17:38 EET DST 1999
+# Configuration time: Wed Oct 27 21:34:17 EET DST 1999
# Configured by : jhi
# Target system : osf1 alpha.hut.fi v4.0 878 alpha
@@ -30,10 +30,10 @@ afs='false'
alignbytes='8'
ansi2knr=''
aphostname=''
-apiversion='5.00561'
+apiversion='5.00562'
ar='ar'
-archlib='/opt/perl/lib/5.00561/alpha-dec_osf-thread'
-archlibexp='/opt/perl/lib/5.00561/alpha-dec_osf-thread'
+archlib='/opt/perl/lib/5.00562/alpha-dec_osf-thread'
+archlibexp='/opt/perl/lib/5.00562/alpha-dec_osf-thread'
archname64=''
archname='alpha-dec_osf-thread'
archobjs=''
@@ -51,12 +51,12 @@ castflags='0'
cat='cat'
cc='cc'
cccdlflags=' '
-ccdlflags=' -Wl,-rpath,/opt/perl/lib/5.00561/alpha-dec_osf-thread/CORE'
+ccdlflags=' -Wl,-rpath,/opt/perl/lib/5.00562/alpha-dec_osf-thread/CORE'
ccflags='-pthread -std -DLANGUAGE_C'
ccsymbols='__LANGUAGE_C__=1 _LONGLONG=1 LANGUAGE_C=1 SYSTYPE_BSD=1'
cf_by='jhi'
cf_email='yourname@yourhost.yourplace.com'
-cf_time='Sun Oct 3 02:17:38 EET DST 1999'
+cf_time='Wed Oct 27 21:34:17 EET DST 1999'
chgrp=''
chmod=''
chown=''
@@ -112,7 +112,6 @@ d_chown='define'
d_chroot='define'
d_chsize='undef'
d_closedir='define'
-d_cmsghdr_s='define'
d_const='define'
d_crypt='define'
d_csh='define'
@@ -148,6 +147,7 @@ d_flock='define'
d_fork='define'
d_fpathconf='define'
d_fpos64_t='undef'
+d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='define'
d_fstatfs='define'
@@ -162,6 +162,7 @@ d_gethent='define'
d_gethname='define'
d_gethostprotos='define'
d_getlogin='define'
+d_getmnt='undef'
d_getmntent='undef'
d_getnbyaddr='define'
d_getnbyname='define'
@@ -203,7 +204,6 @@ d_lockf='define'
d_longdbl='define'
d_longlong='define'
d_lstat='define'
-d_madvise='define'
d_mblen='define'
d_mbstowcs='define'
d_mbtowc='define'
@@ -215,8 +215,6 @@ d_memset='define'
d_mkdir='define'
d_mkfifo='define'
d_mktime='define'
-d_mmap='define'
-d_mprotect='define'
d_msg='define'
d_msg_ctrunc='define'
d_msg_dontroute='define'
@@ -225,11 +223,8 @@ d_msg_peek='define'
d_msg_proxy='undef'
d_msgctl='define'
d_msgget='define'
-d_msghdr_s='define'
d_msgrcv='define'
d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
d_mymalloc='undef'
d_nice='define'
d_off64_t='undef'
@@ -254,8 +249,6 @@ d_pwpasswd='define'
d_pwquota='define'
d_readdir='define'
d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
d_rename='define'
d_rewinddir='define'
d_rmdir='define'
@@ -272,7 +265,6 @@ d_semctl_semid_ds='define'
d_semctl_semun='define'
d_semget='define'
d_semop='define'
-d_sendmsg='define'
d_setegid='define'
d_seteuid='define'
d_setgrent='define'
@@ -308,9 +300,10 @@ d_sigaction='define'
d_sigsetjmp='define'
d_socket='define'
d_sockpair='define'
+d_sqrtl='define'
d_statblks='define'
-d_statfs='define'
-d_statfsflags='define'
+d_statfs_f_flags='define'
+d_statfs_s='define'
d_statvfs='define'
d_stdio_cnt_lval='define'
d_stdio_ptr_lval='define'
@@ -345,6 +338,8 @@ d_tzname='define'
d_umask='define'
d_uname='define'
d_union_semun='undef'
+d_ustat='define'
+d_vendorbin='undef'
d_vendorlib='undef'
d_vfork='undef'
d_void_closedir='undef'
@@ -356,7 +351,6 @@ d_wait4='define'
d_waitpid='define'
d_wcstombs='define'
d_wctomb='define'
-d_writev='define'
d_xenix='undef'
date='date'
db_hashtype='u_int32_t'
@@ -367,7 +361,7 @@ dlext='so'
dlsrc='dl_dlopen.xs'
doublesize='8'
drand01='drand48()'
-dynamic_ext='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
+dynamic_ext='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
@@ -376,7 +370,7 @@ emacs=''
eunicefix=':'
exe_ext=''
expr='expr'
-extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re Errno'
+extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re Errno'
fflushNULL='define'
fflushall='undef'
find=''
@@ -441,7 +435,6 @@ i_sysfile='define'
i_sysfilio='undef'
i_sysin='undef'
i_sysioctl='define'
-i_sysmman='define'
i_sysmount='define'
i_sysndir='undef'
i_sysparam='define'
@@ -450,6 +443,7 @@ i_syssecrt='define'
i_sysselct='define'
i_syssockio=''
i_sysstat='define'
+i_sysstatfs='undef'
i_sysstatvfs='define'
i_systime='define'
i_systimek='undef'
@@ -457,11 +451,13 @@ i_systimes='define'
i_systypes='define'
i_sysuio='define'
i_sysun='define'
+i_sysvfs='undef'
i_syswait='define'
i_termio='undef'
i_termios='define'
i_time='undef'
i_unistd='define'
+i_ustat='define'
i_utime='define'
i_values='define'
i_varargs='undef'
@@ -470,21 +466,23 @@ i_vfork='undef'
ignore_versioned_solibs=''
incpath=''
inews=''
-installarchlib='/opt/perl/lib/5.00561/alpha-dec_osf-thread'
+installarchlib='/opt/perl/lib/5.00562/alpha-dec_osf-thread'
installbin='/opt/perl/bin'
installman1dir='/opt/perl/man/man1'
installman3dir='/opt/perl/man/man3'
installprefix='/opt/perl'
installprefixexp='/opt/perl'
-installprivlib='/opt/perl/lib/5.00561'
+installprivlib='/opt/perl/lib/5.00562'
installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread'
+installsitearch='/opt/perl/lib/site_perl/5.00562/alpha-dec_osf-thread'
+installsitebin='/opt/perl/bin'
installsitelib='/opt/perl/lib/site_perl'
installstyle='lib'
installusrbinperl='define'
+installvendorbin=''
installvendorlib=''
intsize='4'
-known_extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
+known_extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
ksh=''
large=''
ld='ld'
@@ -527,10 +525,8 @@ man3dir='/opt/perl/man/man3'
man3direxp='/opt/perl/man/man3'
man3ext='3'
medium=''
-mips=''
mips_type=''
mkdir='mkdir'
-mmaptype='void *'
models='none'
modetype='mode_t'
more='more'
@@ -574,8 +570,8 @@ pmake=''
pr=''
prefix='/opt/perl'
prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.00561'
-privlibexp='/opt/perl/lib/5.00561'
+privlib='/opt/perl/lib/5.00562'
+privlibexp='/opt/perl/lib/5.00562'
prototype='define'
ptrsize='8'
randbits='48'
@@ -619,8 +615,10 @@ sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE"
sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 6 6 16 20 23 23 23 29 48 '
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0'
signal_t='void'
-sitearch='/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread'
-sitearchexp='/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread'
+sitearch='/opt/perl/lib/site_perl/5.00562/alpha-dec_osf-thread'
+sitearchexp='/opt/perl/lib/site_perl/5.00562/alpha-dec_osf-thread'
+sitebin='/opt/perl/bin'
+sitebinexp='/opt/perl/bin'
sitelib='/opt/perl/lib/site_perl'
sitelibexp='/opt/perl/lib/site_perl'
siteprefix='/opt/perl'
@@ -650,7 +648,7 @@ stdio_ptr='((fp)->_ptr)'
stdio_stream_array='_iob'
strings='/usr/include/string.h'
submit=''
-subversion='61'
+subversion='62'
sysman='/usr/man/man1'
tail=''
tar=''
@@ -686,15 +684,17 @@ usevendorprefix='undef'
usevfork='false'
usrinc='/usr/include'
uuname=''
+vendorbin=''
+vendorbinexp=''
vendorlib=''
vendorlibexp=''
vendorprefix=''
vendorprefixexp=''
-version='5.00561'
+version='5.00562'
vi=''
voidflags='15'
xlibpth='/usr/lib/386 /lib/386'
-xs_apiversion='5.00561'
+xs_apiversion='5.00562'
zcat=''
zip='zip'
# Configure command line arguments.
@@ -714,8 +714,8 @@ config_arg10='-Dmyhostname=yourhost'
config_arg11='-dE'
PERL_REVISION=5
PERL_VERSION=5
-PERL_SUBVERSION=61
-PERL_APIVERSION=5.00561
+PERL_SUBVERSION=62
+PERL_APIVERSION=5.00562
CONFIGDOTSH=true
# Variables propagated from previous config.sh file.
pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
diff --git a/Porting/config_H b/Porting/config_H
index 3321c5a029..4f31389ef1 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -17,7 +17,7 @@
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Sun Oct 3 02:17:38 EET DST 1999
+ * Configuration time: Wed Oct 27 21:34:17 EET DST 1999
* Configured by : jhi
* Target system : osf1 alpha.hut.fi v4.0 878 alpha
*/
@@ -362,18 +362,6 @@
*/
#define HAS_MKTIME /**/
-/* HAS_MSYNC:
- * This symbol, if defined, indicates that the msync system call is
- * available to synchronize a mapped file.
- */
-#define HAS_MSYNC /**/
-
-/* HAS_MUNMAP:
- * This symbol, if defined, indicates that the munmap system call is
- * available to unmap a region, usually mapped by mmap().
- */
-#define HAS_MUNMAP /**/
-
/* HAS_NICE:
* This symbol, if defined, indicates that the nice routine is
* available.
@@ -1423,8 +1411,8 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "/opt/perl/lib/5.00561/alpha-dec_osf-thread" /**/
-#define ARCHLIB_EXP "/opt/perl/lib/5.00561/alpha-dec_osf-thread" /**/
+#define ARCHLIB "/opt/perl/lib/5.00562/alpha-dec_osf-thread" /**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.00562/alpha-dec_osf-thread" /**/
/* BIN:
* This symbol holds the path of the bin directory where the package will
@@ -1453,8 +1441,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "/opt/perl/lib/5.00561" /**/
-#define PRIVLIB_EXP "/opt/perl/lib/5.00561" /**/
+#define PRIVLIB "/opt/perl/lib/5.00562" /**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.00562" /**/
/* SITEARCH:
* This symbol contains the name of the private library for this package.
@@ -1469,8 +1457,8 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread" /**/
-#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread" /**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.00562/alpha-dec_osf-thread" /**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.00562/alpha-dec_osf-thread" /**/
/* SITELIB:
* This symbol contains the name of the private library for this package.
@@ -1775,18 +1763,6 @@
*/
#define HAS_MEMCHR /**/
-/* HAS_MMAP:
- * This symbol, if defined, indicates that the mmap system call is
- * available to map a file into memory.
- */
-/* Mmap_t:
- * This symbol holds the return type of the mmap() system call
- * (and simultaneously the type of the first argument).
- * Usually set to 'void *' or 'cadd_t'.
- */
-#define HAS_MMAP /**/
-#define Mmap_t void * /**/
-
/* HAS_MSG:
* This symbol, if defined, indicates that the entire msg*(2) library is
* supported (IPC mechanism based on message queues).
@@ -1893,26 +1869,6 @@
* Checking just with #ifdef might not be enough because this symbol
* has been known to be an enum.
*/
-/* HAS_SENDMSG:
- * This symbol, if defined, indicates that the sendmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_RECVMSG:
- * This symbol, if defined, indicates that the recvmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_MSGHDR:
- * This symbol, if defined, indicates that the struct msghdr
- * (BSD 4.3 or 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_CMSGHDR:
- * This symbol, if defined, indicates that the struct cmsghdr
- * (BSD 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
#define HAS_SOCKET /**/
#define HAS_SOCKETPAIR /**/
#define HAS_MSG_CTRUNC /**/
@@ -1921,10 +1877,6 @@
#define HAS_MSG_PEEK /**/
/*#define HAS_MSG_PROXY / **/
#define HAS_SCM_RIGHTS /**/
-#define HAS_SENDMSG /**/
-#define HAS_RECVMSG /**/
-#define HAS_STRUCT_MSGHDR /**/
-#define HAS_STRUCT_CMSGHDR /**/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
@@ -2066,12 +2018,7 @@
* This symbol, if defined, indicates that <sys/uio.h> exists and
* should be included.
*/
-/* HAS_STRUCT_IOVEC:
- * This symbol, if defined, indicates that the struct iovec
- * to do scatter writes/gather reads is supported.
- */
#define I_SYSUIO /**/
-#define HAS_STRUCT_IOVEC /**/
/* Free_t:
* This variable contains the return type of free(). It is usually
@@ -2178,21 +2125,38 @@
*/
/*#define HAS_ENDSPENT / **/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_FS_DATA / **/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
/*#define HAS_FSEEKO / **/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+#define HAS_FSTATFS /**/
/* HAS_FTELLO:
* This symbol, if defined, indicates that the ftello routine is
* available to ftell beyond 32 bits (useful for ILP32 hosts).
*/
/*#define HAS_FTELLO / **/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+/*#define HAS_GETMNT / **/
+
/* HAS_GETMNTENT:
* This symbol, if defined, indicates that the getmntent routine is
- * available to iterate through mounted file systems.
+ * available to iterate through mounted file systems to get their info.
*/
/*#define HAS_GETMNTENT / **/
@@ -2222,25 +2186,6 @@
*/
#define HAS_LDBL_DIG /* */
-/* HAS_MADVISE:
- * This symbol, if defined, indicates that the madvise system call is
- * available to map a file into memory.
- */
-#define HAS_MADVISE /**/
-
-/* HAS_MPROTECT:
- * This symbol, if defined, indicates that the mprotect system call is
- * available to modify the access protection of a memory mapped file.
- */
-#define HAS_MPROTECT /**/
-
-/* HAS_READV:
- * This symbol, if defined, indicates that the readv routine is
- * available to do gather reads. You will also need <sys/uio.h>
- * and there I_SYSUIO.
- */
-#define HAS_READV /**/
-
/* HAS_SETSPENT:
* This symbol, if defined, indicates that the setspent system call is
* available to initialize the scan of SysV shadow password entries.
@@ -2253,23 +2198,32 @@
*/
/*#define USE_SFIO / **/
-/* HAS_FSTATFS:
- * This symbol, if defined, indicates that the fstatfs routine is
- * available to stat filesystems of file descriptors.
+/* HAS_SQRTL:
+ * This symbol, if defined, indicates that the sqrtl routine is
+ * available to do long double square roots.
*/
-/* HAS_STRUCT_STATFS_FLAGS:
+#define HAS_SQRTL /**/
+
+/* HAS_STRUCT_STATFS_F_FLAGS:
* This symbol, if defined, indicates that the struct statfs
* does have the f_flags member containing the mount flags of
- * the filesystem holding the file.
- * This kind of struct statfs is coming from sys/mount.h (BSD),
- * not from sys/statfs.h (SYSV).
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
*/
-#define HAS_FSTATFS /**/
-#define HAS_STRUCT_STATFS_FLAGS /**/
+#define HAS_STRUCT_STATFS_F_FLAGS /**/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+#define HAS_STRUCT_STATFS /**/
/* HAS_FSTATVFS:
* This symbol, if defined, indicates that the fstatvfs routine is
- * available to stat filesystems of file descriptors.
+ * available to stat filesystems by file descriptors.
*/
#define HAS_FSTATVFS /**/
@@ -2281,11 +2235,11 @@
*/
#define HAS_TELLDIR_PROTO /**/
-/* HAS_WRITEV:
- * This symbol, if defined, indicates that the writev routine is
- * available to do scatter writes.
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
*/
-#define HAS_WRITEV /**/
+#define HAS_USTAT /**/
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
@@ -2362,24 +2316,35 @@
*/
/*#define I_SOCKS / **/
-/* I_SYS_MMAN:
- * This symbol, if defined, indicates that <sys/mman.h> exists and
- * should be included.
- */
-#define I_SYS_MMAN /**/
-
/* I_SYS_MOUNT:
* This symbol, if defined, indicates that <sys/mount.h> exists and
* should be included.
*/
#define I_SYS_MOUNT /**/
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+/*#define I_SYS_STATFS / **/
+
/* I_SYS_STATVFS:
* This symbol, if defined, indicates that <sys/statvfs.h> exists and
* should be included.
*/
#define I_SYS_STATVFS /**/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_VFS / **/
+
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+#define I_USTAT /**/
+
/* HAS_OFF64_T:
* This symbol will be defined if the C compiler supports off64_t.
*/
@@ -2496,7 +2461,7 @@
/* PERL_XS_APIVERSION:
* This variable contains the version of the oldest perl binary
* compatible with the present perl. perl.c:incpush() and
- * lib/lib.pm will automatically search in /opt/perl/lib/site_perl/5.00561/alpha-dec_osf-thread for older
+ * lib/lib.pm will automatically search in /opt/perl/lib/site_perl/5.00562/alpha-dec_osf-thread for older
* directories across major versions back to xs_apiversion.
* This is only useful if you have a perl library directory tree
* structured like the default one.
@@ -2525,7 +2490,7 @@
* (presumably) be similar.
* See the INSTALL file for how this works.
*/
-#define PERL_XS_APIVERSION 5.00561 /* Change to string for tuples?*/
+#define PERL_XS_APIVERSION 5.00562 /* Change to string for tuples?*/
#define PERL_PM_APIVERSION 5.005 /* Change to string for tuples?*/
/* HAS_DRAND48_PROTO:
diff --git a/config_h.SH b/config_h.SH
index 3aa55fda2a..c7ffd8560d 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -376,18 +376,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_mktime HAS_MKTIME /**/
-/* HAS_MSYNC:
- * This symbol, if defined, indicates that the msync system call is
- * available to synchronize a mapped file.
- */
-#$d_msync HAS_MSYNC /**/
-
-/* HAS_MUNMAP:
- * This symbol, if defined, indicates that the munmap system call is
- * available to unmap a region, usually mapped by mmap().
- */
-#$d_munmap HAS_MUNMAP /**/
-
/* HAS_NICE:
* This symbol, if defined, indicates that the nice routine is
* available.
@@ -1789,18 +1777,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_memchr HAS_MEMCHR /**/
-/* HAS_MMAP:
- * This symbol, if defined, indicates that the mmap system call is
- * available to map a file into memory.
- */
-/* Mmap_t:
- * This symbol holds the return type of the mmap() system call
- * (and simultaneously the type of the first argument).
- * Usually set to 'void *' or 'cadd_t'.
- */
-#$d_mmap HAS_MMAP /**/
-#define Mmap_t $mmaptype /**/
-
/* HAS_MSG:
* This symbol, if defined, indicates that the entire msg*(2) library is
* supported (IPC mechanism based on message queues).
@@ -1907,26 +1883,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
* Checking just with #ifdef might not be enough because this symbol
* has been known to be an enum.
*/
-/* HAS_SENDMSG:
- * This symbol, if defined, indicates that the sendmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_RECVMSG:
- * This symbol, if defined, indicates that the recvmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_MSGHDR:
- * This symbol, if defined, indicates that the struct msghdr
- * (BSD 4.3 or 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_CMSGHDR:
- * This symbol, if defined, indicates that the struct cmsghdr
- * (BSD 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
#$d_socket HAS_SOCKET /**/
#$d_sockpair HAS_SOCKETPAIR /**/
#$d_msg_ctrunc HAS_MSG_CTRUNC /**/
@@ -1935,10 +1891,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#$d_msg_peek HAS_MSG_PEEK /**/
#$d_msg_proxy HAS_MSG_PROXY /**/
#$d_scm_rights HAS_SCM_RIGHTS /**/
-#$d_sendmsg HAS_SENDMSG /**/
-#$d_recvmsg HAS_RECVMSG /**/
-#$d_msghdr_s HAS_STRUCT_MSGHDR /**/
-#$d_cmsghdr_s HAS_STRUCT_CMSGHDR /**/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
@@ -2080,12 +2032,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
* This symbol, if defined, indicates that <sys/uio.h> exists and
* should be included.
*/
-/* HAS_STRUCT_IOVEC:
- * This symbol, if defined, indicates that the struct iovec
- * to do scatter writes/gather reads is supported.
- */
#$i_sysuio I_SYSUIO /**/
-#$d_iovec_s HAS_STRUCT_IOVEC /**/
/* Free_t:
* This variable contains the return type of free(). It is usually
@@ -2192,21 +2139,38 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_endspent HAS_ENDSPENT /**/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+#$d_fs_data_s HAS_STRUCT_FS_DATA /**/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
#$d_fseeko HAS_FSEEKO /**/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+#$d_fstatfs HAS_FSTATFS /**/
/* HAS_FTELLO:
* This symbol, if defined, indicates that the ftello routine is
* available to ftell beyond 32 bits (useful for ILP32 hosts).
*/
#$d_ftello HAS_FTELLO /**/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+#$d_getmnt HAS_GETMNT /**/
+
/* HAS_GETMNTENT:
* This symbol, if defined, indicates that the getmntent routine is
- * available to iterate through mounted file systems.
+ * available to iterate through mounted file systems to get their info.
*/
#$d_getmntent HAS_GETMNTENT /**/
@@ -2236,25 +2200,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_ldbl_dig HAS_LDBL_DIG /* */
-/* HAS_MADVISE:
- * This symbol, if defined, indicates that the madvise system call is
- * available to map a file into memory.
- */
-#$d_madvise HAS_MADVISE /**/
-
-/* HAS_MPROTECT:
- * This symbol, if defined, indicates that the mprotect system call is
- * available to modify the access protection of a memory mapped file.
- */
-#$d_mprotect HAS_MPROTECT /**/
-
-/* HAS_READV:
- * This symbol, if defined, indicates that the readv routine is
- * available to do gather reads. You will also need <sys/uio.h>
- * and there I_SYSUIO.
- */
-#$d_readv HAS_READV /**/
-
/* HAS_SETSPENT:
* This symbol, if defined, indicates that the setspent system call is
* available to initialize the scan of SysV shadow password entries.
@@ -2267,23 +2212,32 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_sfio USE_SFIO /**/
-/* HAS_FSTATFS:
- * This symbol, if defined, indicates that the fstatfs routine is
- * available to stat filesystems of file descriptors.
+/* HAS_SQRTL:
+ * This symbol, if defined, indicates that the sqrtl routine is
+ * available to do long double square roots.
*/
-/* HAS_STRUCT_STATFS_FLAGS:
+#$d_sqrtl HAS_SQRTL /**/
+
+/* HAS_STRUCT_STATFS_F_FLAGS:
* This symbol, if defined, indicates that the struct statfs
* does have the f_flags member containing the mount flags of
- * the filesystem holding the file.
- * This kind of struct statfs is coming from sys/mount.h (BSD),
- * not from sys/statfs.h (SYSV).
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
*/
-#$d_fstatfs HAS_FSTATFS /**/
-#$d_statfsflags HAS_STRUCT_STATFS_FLAGS /**/
+#$d_statfs_f_flags HAS_STRUCT_STATFS_F_FLAGS /**/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+#$d_statfs_s HAS_STRUCT_STATFS /**/
/* HAS_FSTATVFS:
* This symbol, if defined, indicates that the fstatvfs routine is
- * available to stat filesystems of file descriptors.
+ * available to stat filesystems by file descriptors.
*/
#$d_fstatvfs HAS_FSTATVFS /**/
@@ -2295,11 +2249,11 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_telldirproto HAS_TELLDIR_PROTO /**/
-/* HAS_WRITEV:
- * This symbol, if defined, indicates that the writev routine is
- * available to do scatter writes.
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
*/
-#$d_writev HAS_WRITEV /**/
+#$d_ustat HAS_USTAT /**/
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
@@ -2376,24 +2330,35 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$i_socks I_SOCKS /**/
-/* I_SYS_MMAN:
- * This symbol, if defined, indicates that <sys/mman.h> exists and
- * should be included.
- */
-#$i_sysmman I_SYS_MMAN /**/
-
/* I_SYS_MOUNT:
* This symbol, if defined, indicates that <sys/mount.h> exists and
* should be included.
*/
#$i_sysmount I_SYS_MOUNT /**/
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+#$i_sysstatfs I_SYS_STATFS /**/
+
/* I_SYS_STATVFS:
* This symbol, if defined, indicates that <sys/statvfs.h> exists and
* should be included.
*/
#$i_sysstatvfs I_SYS_STATVFS /**/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+#$i_sysvfs I_SYS_VFS /**/
+
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+#$i_ustat I_USTAT /**/
+
/* HAS_OFF64_T:
* This symbol will be defined if the C compiler supports off64_t.
*/
diff --git a/deb.c b/deb.c
index 7a213e4fae..10b52cf49d 100644
--- a/deb.c
+++ b/deb.c
@@ -50,8 +50,8 @@ Perl_vdeb(pTHX_ const char *pat, va_list *args)
GV* gv = PL_curcop->cop_filegv;
#ifdef USE_THREADS
- PerlIO_printf(Perl_debug_log, "0x%lx (%s:%ld)\t",
- (unsigned long) thr,
+ PerlIO_printf(Perl_debug_log, "0x%"UVxf" (%s:%ld)\t",
+ PTR2UV(thr),
SvTYPE(gv) == SVt_PVGV ? SvPVX(GvSV(gv)) : "<free>",
(long)PL_curcop->cop_line);
#else
@@ -68,13 +68,16 @@ Perl_debstackptrs(pTHX)
{
#ifdef DEBUGGING
dTHR;
- PerlIO_printf(Perl_debug_log, "%8lx %8lx %8ld %8ld %8ld\n",
- (unsigned long)PL_curstack, (unsigned long)PL_stack_base,
- (long)*PL_markstack_ptr, (long)(PL_stack_sp-PL_stack_base),
- (long)(PL_stack_max-PL_stack_base));
- PerlIO_printf(Perl_debug_log, "%8lx %8lx %8ld %8ld %8ld\n",
- (unsigned long)PL_mainstack, (unsigned long)AvARRAY(PL_curstack),
- (long)PL_mainstack, (long)AvFILLp(PL_curstack), (long)AvMAX(PL_curstack));
+ PerlIO_printf(Perl_debug_log,
+ "%8"UVxf" %8"UVxf" %8"IVdf" %8"IVdf" %8"IVdf"\n",
+ PTR2UV(PL_curstack), PTR2UV(PL_stack_base),
+ (IV)*PL_markstack_ptr, (IV)(PL_stack_sp-PL_stack_base),
+ (IV)(PL_stack_max-PL_stack_base));
+ PerlIO_printf(Perl_debug_log,
+ "%8"UVxf" %8"UVxf" %8"UVuf" %8"UVuf" %8"UVuf"\n",
+ PTR2UV(PL_mainstack), PTR2UV(AvARRAY(PL_curstack)),
+ PTR2UV(PL_mainstack), PTR2UV(AvFILLp(PL_curstack)),
+ PTR2UV(AvMAX(PL_curstack)));
#endif /* DEBUGGING */
return 0;
}
@@ -96,8 +99,9 @@ Perl_debstack(pTHX)
break;
#ifdef USE_THREADS
- PerlIO_printf(Perl_debug_log, i ? "0x%lx => ... " : "0x%lx => ",
- (unsigned long) thr);
+ PerlIO_printf(Perl_debug_log,
+ i ? "0x%"UVxf" => ... " : "0x%lx => ",
+ PTR2UV(thr));
#else
PerlIO_printf(Perl_debug_log, i ? " => ... " : " => ");
#endif /* USE_THREADS */
diff --git a/djgpp/config.over b/djgpp/config.over
index c624386678..f47e7fca91 100644
--- a/djgpp/config.over
+++ b/djgpp/config.over
@@ -28,7 +28,11 @@ repair()
-e 's/thread/Thread/'\
-e 's/byteload/ByteLoader/'\
-e 's=devel/peek=Devel/Peek='\
- -e 's=devel/dprof=Devel/DProf='
+ -e 's=devel/dprof=Devel/DProf='\
+ -e 's=file/=='\
+ -e 's=File/=='\
+ -e 's=glob=='\
+ -e 's=Glob=='
}
static_ext=$(repair "$static_ext")
extensions=$(repair "$extensions")
diff --git a/djgpp/configure.bat b/djgpp/configure.bat
index 6073f442e0..e7d41d7130 100644
--- a/djgpp/configure.bat
+++ b/djgpp/configure.bat
@@ -29,7 +29,6 @@ goto end
sh -c 'if test ! -d /tmp; then mkdir /tmp; fi'
cp djgpp.c config.over ..
cd ..
-mv ext/B/defsu* ext/B/defsubsh.PL
echo Running sed...
sh djgpp/djgppsed.sh
diff --git a/djgpp/djgppsed.sh b/djgpp/djgppsed.sh
index a25e894157..b62acfd6e9 100644
--- a/djgpp/djgppsed.sh
+++ b/djgpp/djgppsed.sh
@@ -24,8 +24,6 @@ SDBHASH='s=dbhash\.tmp=dbhash_tmp=g'
SSTAT='s=\.\(stat\.\)=_\1=g'
STMP2='s=tmp2=tm2=g'
SPACKLIST='s=\.\(packlist\)=_\1=g'
-SDEFSUB='s=defsubs\.h=defsubsh=g'
-SPLPLI='s=PL/;=PL/i;=g'
sed -e $SCONFIG -e $SGREPTMP -e $SECHOTMP -e $SDDC -e $SOUT -e 's=\.\( \./\$file\)$=sh\1=g' Configure |tr -d '\r' >s; mv -f s Configure
sed -e $SEXISTS -e $SLIST -e $SCONFIG Makefile.SH |tr -d '\r' >s; mv -f s Makefile.SH
@@ -49,6 +47,3 @@ sed -e $SPACKLIST lib/ExtUtils/Installed.pm >s; mv -f s lib/ExtUtils/Installed.p
sed -e $SPACKLIST lib/ExtUtils/Packlist.pm >s; mv -f s lib/ExtUtils/Packlist.pm
sed -e $SPACKLIST lib/ExtUtils/inst >s; mv -f s lib/ExtUtils/inst
sed -e $SABC t/io/iprefix.t >s; mv -f s t/io/iprefix.t
-sed -e $SDEFSUB ext/B/Makefile.PL >s; mv -f s ext/B/Makefile.PL
-sed -e $SDEFSUB ext/B/B.xs >s; mv -f s ext/B/B.xs
-sed -e $SDEFSUB -e $SPLPLI ext/B/defsubsh.PL >s; mv -f s ext/B/defsubsh.PL
diff --git a/dump.c b/dump.c
index e3be2f6c9c..f2f75f0ca9 100644
--- a/dump.c
+++ b/dump.c
@@ -612,7 +612,8 @@ void
Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
{
for (; mg; mg = mg->mg_moremagic) {
- Perl_dump_indent(aTHX_ level, file, " MAGIC = 0x%lx\n", (long)mg);
+ Perl_dump_indent(aTHX_ level, file,
+ " MAGIC = 0x%"UVxf"\n", PTR2UV(mg));
if (mg->mg_virtual) {
MGVTBL *v = mg->mg_virtual;
char *s = 0;
@@ -646,7 +647,7 @@ Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxne
if (s)
Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = &PL_vtbl_%s\n", s);
else
- Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = 0x%lx\n", (long)v);
+ Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = 0x%"UVxf"\n", PTR2UV(v));
}
else
Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = 0\n");
@@ -671,14 +672,14 @@ Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxne
Perl_dump_indent(aTHX_ level, file, " MINMATCH\n");
}
if (mg->mg_obj) {
- Perl_dump_indent(aTHX_ level, file, " MG_OBJ = 0x%lx\n", (long)mg->mg_obj);
+ Perl_dump_indent(aTHX_ level, file, " MG_OBJ = 0x%"UVxf"\n", PTR2UV(mg->mg_obj));
if (mg->mg_flags & MGf_REFCOUNTED)
do_sv_dump(level+2, file, mg->mg_obj, nest+1, maxnest, dumpops, pvlim); /* MG is already +1 */
}
if (mg->mg_len)
Perl_dump_indent(aTHX_ level, file, " MG_LEN = %d\n", mg->mg_len);
if (mg->mg_ptr) {
- Perl_dump_indent(aTHX_ level, file, " MG_PTR = 0x%lx", (long)mg->mg_ptr);
+ Perl_dump_indent(aTHX_ level, file, " MG_PTR = 0x%"UVxf, PTR2UV(mg->mg_ptr));
if (mg->mg_len >= 0) {
SV *sv = newSVpvn("", 0);
PerlIO_printf(file, " %s", pv_display(sv, mg->mg_ptr, mg->mg_len, 0, pvlim));
@@ -705,7 +706,7 @@ Perl_magic_dump(pTHX_ MAGIC *mg)
void
Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv)
{
- Perl_dump_indent(aTHX_ level, file, "%s = 0x%lx", name, (long)sv);
+ Perl_dump_indent(aTHX_ level, file, "%s = 0x%"UVxf, name, PTR2UV(sv));
if (sv && HvNAME(sv))
PerlIO_printf(file, "\t\"%s\"\n", HvNAME(sv));
else
@@ -715,7 +716,7 @@ Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv)
void
Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv)
{
- Perl_dump_indent(aTHX_ level, file, "%s = 0x%lx", name, (long)sv);
+ Perl_dump_indent(aTHX_ level, file, "%s = 0x%"UVxf, name, PTR2UV(sv));
if (sv && GvNAME(sv))
PerlIO_printf(file, "\t\"%s\"\n", GvNAME(sv));
else
@@ -725,7 +726,7 @@ Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv)
void
Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv)
{
- Perl_dump_indent(aTHX_ level, file, "%s = 0x%lx", name, (long)sv);
+ Perl_dump_indent(aTHX_ level, file, "%s = 0x%"UVxf, name, PTR2UV(sv));
if (sv && GvNAME(sv)) {
PerlIO_printf(file, "\t\"");
if (GvSTASH(sv) && HvNAME(GvSTASH(sv)))
diff --git a/embed.pl b/embed.pl
index 93c2e2acca..06d6371a1a 100755
--- a/embed.pl
+++ b/embed.pl
@@ -1943,7 +1943,7 @@ s |I32 |regmatch |regnode *prog
s |I32 |regrepeat |regnode *p|I32 max
s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp
s |I32 |regtry |regexp *prog|char *startpos
-s |bool |reginclass |char *p|I32 c
+s |bool |reginclass |regnode *p|I32 c
s |bool |reginclassutf8 |regnode *f|U8* p
s |CHECKPOINT|regcppush |I32 parenfloor
s |char*|regcppop
diff --git a/epoc/config.h b/epoc/config.h
index 0ff42e21be..9f7f37023e 100644
--- a/epoc/config.h
+++ b/epoc/config.h
@@ -378,18 +378,6 @@
*/
#define HAS_MKTIME /**/
-/* HAS_MSYNC:
- * This symbol, if defined, indicates that the msync system call is
- * available to synchronize a mapped file.
- */
-/*#define HAS_MSYNC /**/
-
-/* HAS_MUNMAP:
- * This symbol, if defined, indicates that the munmap system call is
- * available to unmap a region, usually mapped by mmap().
- */
-/*#define HAS_MUNMAP /**/
-
/* HAS_NICE:
* This symbol, if defined, indicates that the nice routine is
* available.
@@ -1697,18 +1685,6 @@
*/
#define HAS_MEMCHR /**/
-/* HAS_MMAP:
- * This symbol, if defined, indicates that the mmap system call is
- * available to map a file into memory.
- */
-/* Mmap_t:
- * This symbol holds the return type of the mmap() system call
- * (and simultaneously the type of the first argument).
- * Usually set to 'void *' or 'cadd_t'.
- */
-/*#define HAS_MMAP /**/
-#define Mmap_t void * /**/
-
/* HAS_MSG:
* This symbol, if defined, indicates that the entire msg*(2) library is
* supported (IPC mechanism based on message queues).
@@ -1815,26 +1791,6 @@
* Checking just with #ifdef might not be enough because this symbol
* has been known to be an enum.
*/
-/* HAS_SENDMSG:
- * This symbol, if defined, indicates that the sendmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_RECVMSG:
- * This symbol, if defined, indicates that the recvmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_MSGHDR:
- * This symbol, if defined, indicates that the struct msghdr
- * (BSD 4.3 or 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_CMSGHDR:
- * This symbol, if defined, indicates that the struct cmsghdr
- * (BSD 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
#define HAS_SOCKET /**/
/*#define HAS_SOCKETPAIR /**/
/*#define HAS_MSG_CTRUNC /**/
@@ -1843,10 +1799,6 @@
/*#define HAS_MSG_PEEK /**/
/*#define HAS_MSG_PROXY / **/
/*#define HAS_SCM_RIGHTS /**/
-/*##define HAS_SENDMSG /**/
-/*##define HAS_RECVMSG /**/
-/*##define HAS_STRUCT_MSGHDR /**/
-/*##define HAS_STRUCT_CMSGHDR /**/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
@@ -1984,12 +1936,6 @@
/*#define PWGECOS /**/
/*#define PWPASSWD /**/
-/* I_SYSUIO:
- * This symbol, if defined, indicates that <sys/uio.h> exists and
- * should be included.
- */
-#/*define I_SYSUIO /**/
-
/* Free_t:
* This variable contains the return type of free(). It is usually
* void, but occasionally int.
@@ -2109,25 +2055,6 @@
*/
/*#define HAS_HASMNTOPT / **/
-/* HAS_MADVISE:
- * This symbol, if defined, indicates that the madvise system call is
- * available to map a file into memory.
- */
-/*#define HAS_MADVISE /**/
-
-/* HAS_MPROTECT:
- * This symbol, if defined, indicates that the mprotect system call is
- * available to modify the access protection of a memory mapped file.
- */
-/*#define HAS_MPROTECT /**/
-
-/* HAS_READV:
- * This symbol, if defined, indicates that the readv routine is
- * available to do gather reads. You will also need <sys/uio.h>
- * and there I_SYSUIO.
- */
-/*#define HAS_READV /**/
-
/* USE_SFIO:
* This symbol, if defined, indicates that sfio should
* be used.
@@ -2162,12 +2089,6 @@
*/
#define HAS_TELLDIR_PROTO /**/
-/* HAS_WRITEV:
- * This symbol, if defined, indicates that the writev routine is
- * available to do scatter writes.
- */
-/*#define HAS_WRITEV /**/
-
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
* some sort is available.
@@ -2231,12 +2152,6 @@
*/
/*#define I_POLL /**/
-/* I_SYS_MMAN:
- * This symbol, if defined, indicates that <sys/mman.h> exists and
- * should be included.
- */
-/*#define I_SYS_MMAN /**/
-
/* I_SYS_MOUNT:
* This symbol, if defined, indicates that <sys/mount.h> exists and
* should be included.
diff --git a/ext/Data/Dumper/Dumper.xs b/ext/Data/Dumper/Dumper.xs
index 054e0a970d..6f548bbaa7 100644
--- a/ext/Data/Dumper/Dumper.xs
+++ b/ext/Data/Dumper/Dumper.xs
@@ -45,11 +45,12 @@ TOP:
}
if (isIDFIRST(*s)) {
while (*++s)
- if (!isALNUM(*s))
+ if (!isALNUM(*s)) {
if (*s == ':')
goto TOP;
else
return 1;
+ }
}
else
return 1;
@@ -384,7 +385,7 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
ilen = inamelen;
sv_setiv(ixsv, ix);
- (void) sprintf(iname+ilen, "%ld", ix);
+ (void) sprintf(iname+ilen, "%"IVdf, (IV)ix);
ilen = strlen(iname);
iname[ilen++] = ']'; iname[ilen] = '\0';
if (indent >= 3) {
@@ -584,7 +585,7 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
if (SvIOK(val)) {
STRLEN len;
i = SvIV(val);
- (void) sprintf(tmpbuf, "%d", i);
+ (void) sprintf(tmpbuf, "%"IVdf, (IV)i);
len = strlen(tmpbuf);
sv_catpvn(retval, tmpbuf, len);
}
@@ -705,7 +706,7 @@ Data_Dumper_Dumpxs(href, ...)
SV **svp;
SV *val, *name, *pad, *xpad, *apad, *sep, *tmp, *varname;
SV *freezer, *toaster, *bless;
- I32 purity, deepcopy, quotekeys, maxdepth;
+ I32 purity, deepcopy, quotekeys, maxdepth = 0;
char tmpbuf[1024];
I32 gimme = GIMME;
@@ -838,7 +839,7 @@ Data_Dumper_Dumpxs(href, ...)
STRLEN nchars = 0;
sv_setpvn(name, "$", 1);
sv_catsv(name, varname);
- (void) sprintf(tmpbuf, "%ld", i+1);
+ (void) sprintf(tmpbuf, "%d", i+1);
nchars = strlen(tmpbuf);
sv_catpvn(name, tmpbuf, nchars);
}
diff --git a/ext/Devel/DProf/DProf.xs b/ext/Devel/DProf/DProf.xs
index 533f94b5bf..c751127f08 100644
--- a/ext/Devel/DProf/DProf.xs
+++ b/ext/Devel/DProf/DProf.xs
@@ -163,13 +163,13 @@ static void
prof_dumpa(opcode ptype, U32 id)
{
if(ptype == OP_LEAVESUB){
- PerlIO_printf(fp,"- %lx\n", id );
+ PerlIO_printf(fp,"- %"UVxf"\n", (UV)id );
} else if(ptype == OP_ENTERSUB) {
- PerlIO_printf(fp,"+ %lx\n", id );
+ PerlIO_printf(fp,"+ %"UVxf"\n", (UV)id );
} else if(ptype == OP_GOTO) {
- PerlIO_printf(fp,"* %lx\n", id );
+ PerlIO_printf(fp,"* %"UVxf"\n", (UV)id );
} else if(ptype == OP_DIE) {
- PerlIO_printf(fp,"/ %lx\n", id );
+ PerlIO_printf(fp,"/ %"UVxf"\n", (UV)id );
} else {
PerlIO_printf(fp,"Profiler unknown prof code %d\n", ptype);
}
@@ -178,7 +178,7 @@ prof_dumpa(opcode ptype, U32 id)
static void
prof_dumps(U32 id, char *pname, char *gname)
{
- PerlIO_printf(fp,"& %lx %s %s\n", id, pname, gname);
+ PerlIO_printf(fp,"& %"UVxf" %s %s\n", (UV)id, pname, gname);
}
static clock_t otms_utime, otms_stime, orealtime;
@@ -477,7 +477,7 @@ prof_recordheader(void)
/* fp is opened in the BOOT section */
PerlIO_printf(fp, "#fOrTyTwO\n" );
- PerlIO_printf(fp, "$hz=%d;\n", DPROF_HZ );
+ PerlIO_printf(fp, "$hz=%"IVdf";\n", (IV)DPROF_HZ );
PerlIO_printf(fp, "$XS_VERSION='DProf %s';\n", XS_VERSION );
PerlIO_printf(fp, "# All values are given in HZ\n" );
test_time(&r, &u, &s);
@@ -516,7 +516,7 @@ prof_record(void)
prof_end.tms_utime - prof_start.tms_utime - wprof_u,
prof_end.tms_stime - prof_start.tms_stime - wprof_s,
rprof_end - rprof_start - wprof_r );
- PerlIO_printf(fp, "\n$total_marks=%ld;", total);
+ PerlIO_printf(fp, "\n$total_marks=%"IVdf, (IV)total);
PerlIO_close( fp );
}
diff --git a/ext/Devel/Peek/Peek.xs b/ext/Devel/Peek/Peek.xs
index 4f3400312e..d2f66c40da 100644
--- a/ext/Devel/Peek/Peek.xs
+++ b/ext/Devel/Peek/Peek.xs
@@ -159,7 +159,7 @@ PPCODE:
PL_dumpindent = 2;
for (i=1; i<items; i++) {
- PerlIO_printf(Perl_debug_log, "Elt No. %ld 0x%lx\n", i - 1, ST(i));
+ PerlIO_printf(Perl_debug_log, "Elt No. %ld 0x%"UVxf"\n", i - 1, PTR2UV(ST(i)));
do_sv_dump(0, Perl_debug_log, ST(i), 0, lim, dumpop && SvTRUE(dumpop), pv_lim);
}
PL_dumpindent = save_dumpindent;
diff --git a/hints/aix.sh b/hints/aix.sh
index 60ca22a74f..b7cfe4624f 100644
--- a/hints/aix.sh
+++ b/hints/aix.sh
@@ -61,7 +61,11 @@ case "$osvers" in
esac
so="a"
-dlext="o"
+# AIX itself uses .o (libc.o) but we prefer compatibility
+# with the rest of the world and with rest of the scripting
+# languages (Tcl, Python) and related systems (SWIG).
+# Stephanie Beals <bealzy@us.ibm.com>
+dlext="so"
# Trying to set this breaks the POSIX.c compilation
@@ -230,7 +234,7 @@ EOCBU
# terminateAndUnload() which work correctly with C++ statics while libc
# load() and unload() do not. See ext/DynaLoader/dl_aix.xs.
# The C-to-C_r switch is done by usethreads.cbu, if needed.
-if test -f /lib/libC.a -a X"$gccversion" = X; then
+if test -f /lib/libC.a -a X"`$cc -v 2>&1 | grep gcc`" = X; then
# Cify libswanted.
set `echo X "$libswanted "| sed -e 's/ c / C c /'`
shift
diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh
index fd7f479d2a..3c3b00caa5 100644
--- a/hints/dec_osf.sh
+++ b/hints/dec_osf.sh
@@ -58,11 +58,13 @@
# and it is called GEM. Many of the options we are going to use depend
# on the compiler style.
+cc=${cc:-cc}
+
# do NOT, I repeat, *NOT* take away the leading tabs
# Configure Black Magic (TM)
# reset
_DEC_cc_style=
-case "$cc" in
+case "`$cc -v 2>&1 | grep cc`" in
*gcc*) ;; # pass
*) # compile something small: taint.c is fine for this.
# the main point is the '-v' flag of 'cc'.
@@ -80,7 +82,7 @@ case "$cc" in
esac
# be nauseatingly ANSI
-case "$cc" in
+case "`$cc -v 2>&1 | grep gcc`" in
*gcc*) ccflags="$ccflags -ansi"
;;
*) ccflags="$ccflags -std"
@@ -93,7 +95,7 @@ esac
# we want optimisation
case "$optimize" in
-'') case "$cc" in
+'') case "`$cc -v 2>&1 | grep gcc`" in
*gcc*)
optimize='-O3' ;;
*) case "$_DEC_cc_style" in
@@ -207,17 +209,19 @@ pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
- # Threads interfaces changed with V4.0.
- case "`uname -r`" in
- *[123].*)
- libswanted="$libswanted pthreads mach exc c_r"
- ccflags="-threads $ccflags"
- ;;
- *)
- libswanted="$libswanted pthread exc"
- ccflags="-pthread $ccflags"
+ # Threads interfaces changed with V4.0.
+ case "`$cc -v 2>&1 | grep gcc`" in
+ *gcc*)ccflags="-D_REENTRANT $ccflags" ;;
+ *) case "`uname -r`" in
+ *[123].*) ccflags="-threads $ccflags" ;;
+ *) ccflags="-pthread $ccflags" ;;
+ esac
;;
- esac
+ esac
+ case "`uname -r`" in
+ *[123].*) libswanted="$libswanted pthreads mach exc c_r" ;;
+ *) libswanted="$libswanted pthread exc" ;;
+ esac
usemymalloc='n'
;;
@@ -359,5 +363,3 @@ unset _DEC_cc_style
# * Set -Olimit to 3200 because perl_yylex.c got too big
# for the optimizer.
#
-
-
diff --git a/hints/hpux.sh b/hints/hpux.sh
index 8b2023aa81..add4410cd5 100644
--- a/hints/hpux.sh
+++ b/hints/hpux.sh
@@ -197,6 +197,36 @@ case "$cc" in
*gcc*) ccflags="$ccflags -DUINT32_MAX_BROKEN" ;;
esac
+cat > UU/cc.cbu <<'EOSH'
+# XXX This script UU/cc.cbu will get 'called-back' by Configure after it
+# XXX has prompted the user for the C compiler to use.
+# Get gcc to share its secrets.
+echo 'main() { return 0; }' > try.c
+ # Indent to avoid propagation to config.sh
+ verbose=`${cc:-cc} -v -o try try.c 2>&1`
+if echo "$verbose" | grep '^Reading specs from' >/dev/null 2>&1; then
+ # Using gcc.
+ : nothing to see here, move on.
+else
+ # Using cc.
+ ar=${ar:-ar}
+ case "`$ar -V 2>&1`" in
+ *GNU*)
+ if test -x /usr/bin/ar; then
+ cat <<END >&2
+
+NOTE: You are using HP cc(1) but GNU ar(1). This might lead into trouble
+later on, I'm switching to HP ar to play safe.
+
+END
+ ar=/usr/bin/ar
+ fi
+ ;;
+ esac
+fi
+
+EOSH
+
# Date: Fri, 6 Sep 96 23:15:31 CDT
# From: "Daniel S. Lewart" <d-lewart@uiuc.edu>
# I looked through the gcc.info and found this:
diff --git a/iperlsys.h b/iperlsys.h
index 92e5c28e18..d130b739d3 100644
--- a/iperlsys.h
+++ b/iperlsys.h
@@ -1346,22 +1346,5 @@ struct IPerlSockInfo
#endif /* PERL_IMPLICIT_SYS */
-/* Mention
-
- HAS_READV
- HAS_RECVMSG
- HAS_SENDMSG
- HAS_WRITEV
- HAS_STRUCT_MSGHDR
- HAS_STRUCT_CMSGHDR
-
- here so that Configure picks them up. Perl core does not
- use them but somebody might want to extend Socket:: or IO::
- someday.
-
- Jarkko Hietaniemi November 1998
-
- */
-
#endif /* __Inc__IPerl___ */
diff --git a/lib/diagnostics.pm b/lib/diagnostics.pm
index 05af6211fc..d405e3673e 100755
--- a/lib/diagnostics.pm
+++ b/lib/diagnostics.pm
@@ -180,10 +180,10 @@ if ($^O eq 'VMS') {
@trypod = (
"$archlib/pod/perldiag.pod",
"$privlib/pod/perldiag-$].pod",
- "$privlib/pod/perldiag.pod"
+ "$privlib/pod/perldiag.pod",
"$archlib/pods/perldiag.pod",
"$privlib/pods/perldiag-$].pod",
- "$privlib/pods/perldiag.pod"
+ "$privlib/pods/perldiag.pod",
);
# handy for development testing of new warnings etc
unshift @trypod, "./pod/perldiag.pod" if -e "pod/perldiag.pod";
diff --git a/malloc.c b/malloc.c
index 3bbbe1c1ea..734ea066e8 100644
--- a/malloc.c
+++ b/malloc.c
@@ -1025,16 +1025,17 @@ Perl_malloc(register size_t nbytes)
}
DEBUG_m(PerlIO_printf(Perl_debug_log,
- "0x%lx: (%05lu) malloc %ld bytes\n",
- (unsigned long)(p+1), (unsigned long)(PL_an++),
+ "0x%"UVxf": (%05lu) malloc %ld bytes\n",
+ PTR2UV(p+1), (unsigned long)(PL_an++),
(long)size));
/* remove from linked list */
#if defined(RCHECK)
if ((PTR2UV(p)) & (MEM_ALIGNBYTES - 1)) {
dTHXo;
- PerlIO_printf(PerlIO_stderr(), "Corrupt malloc ptr 0x%lx at 0x%lx\n",
- (unsigned long)*((int*)p),(unsigned long)p);
+ PerlIO_printf(PerlIO_stderr(),
+ "Corrupt malloc ptr 0x%lx at 0x%"UVxf"\n",
+ (unsigned long)*((int*)p),PTR2UV(p));
}
#endif
nextf[bucket] = p->ov_next;
@@ -1475,8 +1476,8 @@ Perl_mfree(void *mp)
#endif
DEBUG_m(PerlIO_printf(Perl_debug_log,
- "0x%lx: (%05lu) free\n",
- (unsigned long)cp, (unsigned long)(PL_an++)));
+ "0x%"UVxf": (%05lu) free\n",
+ PTR2UV(cp), (unsigned long)(PL_an++)));
if (cp == NULL)
return;
@@ -1661,8 +1662,8 @@ Perl_realloc(void *mp, size_t nbytes)
#endif
res = cp;
DEBUG_m(PerlIO_printf(Perl_debug_log,
- "0x%lx: (%05lu) realloc %ld bytes inplace\n",
- (unsigned long)res,(unsigned long)(PL_an++),
+ "0x%"UVxf": (%05lu) realloc %ld bytes inplace\n",
+ PTR2UV(res),(unsigned long)(PL_an++),
(long)size));
} else if (incr == 1 && (cp - M_OVERHEAD == last_op)
&& (onb > (1 << LOG_OF_MIN_ARENA))) {
@@ -1697,8 +1698,8 @@ Perl_realloc(void *mp, size_t nbytes)
} else {
hard_way:
DEBUG_m(PerlIO_printf(Perl_debug_log,
- "0x%lx: (%05lu) realloc %ld bytes the hard way\n",
- (unsigned long)cp,(unsigned long)(PL_an++),
+ "0x%"UVxf": (%05lu) realloc %ld bytes the hard way\n",
+ PTR2UV(cp),(unsigned long)(PL_an++),
(long)size));
if ((res = (char*)Perl_malloc(nbytes)) == NULL)
return (NULL);
@@ -1969,8 +1970,8 @@ Perl_sbrk(int size)
}
}
- DEBUG_m(PerlIO_printf(Perl_debug_log, "sbrk malloc size %ld (reqsize %ld), left size %ld, give addr 0x%lx\n",
- size, reqsize, Perl_sbrk_oldsize, got));
+ DEBUG_m(PerlIO_printf(Perl_debug_log, "sbrk malloc size %ld (reqsize %ld), left size %ld, give addr 0x%"UVxf"\n",
+ size, reqsize, Perl_sbrk_oldsize, PTR2UV(got)));
return (void *)got;
}
diff --git a/mg.c b/mg.c
index 0f25d95393..4cbe0df113 100644
--- a/mg.c
+++ b/mg.c
@@ -1942,8 +1942,9 @@ int
Perl_magic_mutexfree(pTHX_ SV *sv, MAGIC *mg)
{
dTHR;
- DEBUG_S(PerlIO_printf(Perl_debug_log, "0x%lx: magic_mutexfree 0x%lx\n",
- (unsigned long)thr, (unsigned long)sv);)
+ DEBUG_S(PerlIO_printf(Perl_debug_log,
+ "0x%"UVxf": magic_mutexfree 0x%"UVxf"\n",
+ PTR2UV(thr), PTR2UV(sv));)
if (MgOWNER(mg))
Perl_croak(aTHX_ "panic: magic_mutexfree");
MUTEX_DESTROY(MgMUTEXP(mg));
diff --git a/op.c b/op.c
index d0880214c7..b8006a1670 100644
--- a/op.c
+++ b/op.c
@@ -450,12 +450,14 @@ Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype)
SvFLAGS(sv) |= tmptype;
PL_curpad = AvARRAY(PL_comppad);
#ifdef USE_THREADS
- DEBUG_X(PerlIO_printf(Perl_debug_log, "0x%lx Pad 0x%lx alloc %ld for %s\n",
- (unsigned long) thr, (unsigned long) PL_curpad,
+ DEBUG_X(PerlIO_printf(Perl_debug_log,
+ "0x%"UVxf" Pad 0x%"UVxf" alloc %ld for %s\n",
+ PTR2UV(thr), PTR2UV(PL_curpad),
(long) retval, PL_op_name[optype]));
#else
- DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%lx alloc %ld for %s\n",
- (unsigned long) PL_curpad,
+ DEBUG_X(PerlIO_printf(Perl_debug_log,
+ "Pad 0x%"UVxf" alloc %ld for %s\n",
+ PTR2UV(PL_curpad),
(long) retval, PL_op_name[optype]));
#endif /* USE_THREADS */
return (PADOFFSET)retval;
@@ -466,13 +468,14 @@ Perl_pad_sv(pTHX_ PADOFFSET po)
{
dTHR;
#ifdef USE_THREADS
- DEBUG_X(PerlIO_printf(Perl_debug_log, "0x%lx Pad 0x%lx sv %d\n",
- (unsigned long) thr, (unsigned long) PL_curpad, po));
+ DEBUG_X(PerlIO_printf(Perl_debug_log,
+ "0x%"UVxf" Pad 0x%"UVxf" sv %d\n",
+ PTR2UV(thr), PTR2UV(PL_curpad), po));
#else
if (!po)
Perl_croak(aTHX_ "panic: pad_sv po");
- DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%lx sv %d\n",
- (unsigned long) PL_curpad, po));
+ DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%"UVxf" sv %d\n",
+ PTR2UV(PL_curpad), po));
#endif /* USE_THREADS */
return PL_curpad[po]; /* eventually we'll turn this into a macro */
}
@@ -488,11 +491,12 @@ Perl_pad_free(pTHX_ PADOFFSET po)
if (!po)
Perl_croak(aTHX_ "panic: pad_free po");
#ifdef USE_THREADS
- DEBUG_X(PerlIO_printf(Perl_debug_log, "0x%lx Pad 0x%lx free %d\n",
- (unsigned long) thr, (unsigned long) PL_curpad, po));
+ DEBUG_X(PerlIO_printf(Perl_debug_log,
+ "0x%"UVxf" Pad 0x%"UVxf" free %d\n",
+ PTR2UV(thr), PTR2UV(PL_curpad), po));
#else
- DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%lx free %d\n",
- (unsigned long) PL_curpad, po));
+ DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%"UVxf" free %d\n",
+ PTR2UV(PL_curpad), po));
#endif /* USE_THREADS */
if (PL_curpad[po] && PL_curpad[po] != &PL_sv_undef)
SvPADTMP_off(PL_curpad[po]);
@@ -509,11 +513,12 @@ Perl_pad_swipe(pTHX_ PADOFFSET po)
if (!po)
Perl_croak(aTHX_ "panic: pad_swipe po");
#ifdef USE_THREADS
- DEBUG_X(PerlIO_printf(Perl_debug_log, "0x%lx Pad 0x%lx swipe %d\n",
- (unsigned long) thr, (unsigned long) PL_curpad, po));
+ DEBUG_X(PerlIO_printf(Perl_debug_log,
+ "0x%"UVxf" Pad 0x%"UVxf" swipe %d\n",
+ PTR2UV(thr), PTR2UV(PL_curpad), po));
#else
- DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%lx swipe %d\n",
- (unsigned long) PL_curpad, po));
+ DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%"UVxf" swipe %d\n",
+ PTR2UV(PL_curpad), po));
#endif /* USE_THREADS */
SvPADTMP_off(PL_curpad[po]);
PL_curpad[po] = NEWSV(1107,0);
@@ -538,11 +543,12 @@ Perl_pad_reset(pTHX)
if (AvARRAY(PL_comppad) != PL_curpad)
Perl_croak(aTHX_ "panic: pad_reset curpad");
#ifdef USE_THREADS
- DEBUG_X(PerlIO_printf(Perl_debug_log, "0x%lx Pad 0x%lx reset\n",
- (unsigned long) thr, (unsigned long) PL_curpad));
+ DEBUG_X(PerlIO_printf(Perl_debug_log,
+ "0x%"UVxf" Pad 0x%"UVxf" reset\n",
+ PTR2UV(thr), PTR2UV(PL_curpad)));
#else
- DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%lx reset\n",
- (unsigned long) PL_curpad));
+ DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%"UVxf" reset\n",
+ PTR2UV(PL_curpad)));
#endif /* USE_THREADS */
if (!PL_tainting) { /* Can't mix tainted and non-tainted temporaries. */
for (po = AvMAX(PL_comppad); po > PL_padix_floor; po--) {
@@ -3846,13 +3852,14 @@ cv_dump(CV *cv)
SV** ppad;
I32 ix;
- PerlIO_printf(Perl_debug_log, "\tCV=0x%lx (%s), OUTSIDE=0x%lx (%s)\n",
- cv,
+ PerlIO_printf(Perl_debug_log,
+ "\tCV=0x%"UVxf" (%s), OUTSIDE=0x%"UVxf" (%s)\n",
+ PTR2UV(cv),
(CvANON(cv) ? "ANON"
: (cv == PL_main_cv) ? "MAIN"
: CvUNIQUE(cv) ? "UNIQUE"
: CvGV(cv) ? GvNAME(CvGV(cv)) : "UNDEFINED"),
- outside,
+ PTR2UV(outside),
(!outside ? "null"
: CvANON(outside) ? "ANON"
: (outside == PL_main_cv) ? "MAIN"
@@ -3869,12 +3876,13 @@ cv_dump(CV *cv)
for (ix = 1; ix <= AvFILLp(pad_name); ix++) {
if (SvPOK(pname[ix]))
- PerlIO_printf(Perl_debug_log, "\t%4d. 0x%lx (%s\"%s\" %ld-%ld)\n",
- ix, ppad[ix],
+ PerlIO_printf(Perl_debug_log,
+ "\t%4d. 0x%"UVxf" (%s\"%s\" %"IVdf"-%"IVdf")\n",
+ ix, PTR2UV(ppad[ix]),
SvFAKE(pname[ix]) ? "FAKE " : "",
SvPVX(pname[ix]),
- (long)I_32(SvNVX(pname[ix])),
- (long)SvIVX(pname[ix]));
+ (IV)I_32(SvNVX(pname[ix])),
+ SvIVX(pname[ix]));
}
}
#endif /* DEBUG_CLOSURES */
diff --git a/perl.c b/perl.c
index 1e0de5105d..c14bfee948 100644
--- a/perl.c
+++ b/perl.c
@@ -1107,8 +1107,8 @@ S_run_body(pTHX_ va_list args)
if (!PL_restartop) {
DEBUG_x(dump_all());
DEBUG(PerlIO_printf(Perl_debug_log, "\nEXECUTING...\n\n"));
- DEBUG_S(PerlIO_printf(Perl_debug_log, "main thread is 0x%lx\n",
- (unsigned long) thr));
+ DEBUG_S(PerlIO_printf(Perl_debug_log, "main thread is 0x%"UVxf"\n",
+ PTR2UV(thr)));
if (PL_minus_c) {
PerlIO_printf(Perl_error_log, "%s syntax OK\n", PL_origfilename);
@@ -1778,7 +1778,7 @@ Perl_moreswitches(pTHX_ char *s)
#if defined(LOCAL_PATCH_COUNT)
if (LOCAL_PATCH_COUNT > 0)
printf("\n(with %d registered patch%s, see perl -V for more detail)",
- LOCAL_PATCH_COUNT, (LOCAL_PATCH_COUNT!=1) ? "es" : "");
+ (int)LOCAL_PATCH_COUNT, (LOCAL_PATCH_COUNT!=1) ? "es" : "");
#endif
printf("\n\nCopyright 1987-1999, Larry Wall\n");
@@ -2191,13 +2191,15 @@ sed %s -e \"/^[^#]/b\" \
STATIC int
S_fd_on_nosuid_fs(pTHX_ int fd)
{
- int on_nosuid = 0;
- int check_okay = 0;
+ int check_okay = 0; /* able to do all the required sys/libcalls */
+ int on_nosuid = 0; /* the fd is on a nosuid fs */
/*
- * Preferred order: fstatvfs(), fstatfs(), getmntent().
+ * Preferred order: fstatvfs(), fstatfs(), ustat()+getmnt(), getmntent().
* fstatvfs() is UNIX98.
- * fstatfs() is BSD.
- * getmntent() is O(number-of-mounted-filesystems) and can hang.
+ * fstatfs() is 4.3 BSD.
+ * ustat()+getmnt() is pre-4.3 BSD.
+ * getmntent() is O(number-of-mounted-filesystems) and can hang on
+ * an irrelevant filesystem while trying to reach the right one.
*/
# ifdef HAS_FSTATVFS
@@ -2205,24 +2207,45 @@ S_fd_on_nosuid_fs(pTHX_ int fd)
check_okay = fstatvfs(fd, &stfs) == 0;
on_nosuid = check_okay && (stfs.f_flag & ST_NOSUID);
# else
-# if defined(HAS_FSTATFS) && defined(HAS_STRUCT_STATFS_FLAGS)
+# ifdef PERL_MOUNT_NOSUID
+# if defined(HAS_FSTATFS) && \
+ defined(HAS_STRUCT_STATFS) && \
+ defined(HAS_STRUCT_STATFS_F_FLAGS)
struct statfs stfs;
check_okay = fstatfs(fd, &stfs) == 0;
-# undef PERL_MOUNT_NOSUID
-# if !defined(PERL_MOUNT_NOSUID) && defined(MNT_NOSUID)
-# define PERL_MOUNT_NOSUID MNT_NOSUID
-# endif
-# if !defined(PERL_MOUNT_NOSUID) && defined(MS_NOSUID)
-# define PERL_MOUNT_NOSUID MS_NOSUID
-# endif
-# if !defined(PERL_MOUNT_NOSUID) && defined(M_NOSUID)
-# define PERL_MOUNT_NOSUID M_NOSUID
-# endif
-# ifdef PERL_MOUNT_NOSUID
on_nosuid = check_okay && (stfs.f_flags & PERL_MOUNT_NOSUID);
-# endif
+# else
+# if defined(HAS_FSTAT) && \
+ defined(HAS_USTAT) && \
+ defined(HAS_GETMNT) && \
+ defined(HAS_STRUCT_FS_DATA) &&
+ defined(NOSTAT_ONE)
+ struct stat fdst;
+ if (fstat(fd, &fdst) == 0) {
+ struct ustat us;
+ if (ustat(fdst.st_dev, &us) == 0) {
+ struct fs_data fsd;
+ /* NOSTAT_ONE here because we're not examining fields which
+ * vary between that case and STAT_ONE. */
+ if (getmnt((int*)0, &fsd, (int)0, NOSTAT_ONE, us.f_fname) == 0) {
+ size_t cmplen = sizeof(us.f_fname);
+ if (sizeof(fsd.fd_req.path) < cmplen)
+ cmplen = sizeof(fsd.fd_req.path);
+ if (strnEQ(fsd.fd_req.path, us.f_fname, cmplen) &&
+ fdst.st_dev == fsd.fd_req.dev) {
+ check_okay = 1;
+ on_nosuid = fsd.fd_req.flags & PERL_MOUNT_NOSUID;
+ }
+ }
+ }
+ }
+ }
+# endif /* fstat+ustat+getmnt */
+# endif /* fstatfs */
# else
-# if defined(HAS_GETMNTENT) && defined(HAS_HASMNTOPT) && defined(MNTOPT_NOSUID)
+# if defined(HAS_GETMNTENT) && \
+ defined(HAS_HASMNTOPT) && \
+ defined(MNTOPT_NOSUID)
FILE *mtab = fopen("/etc/mtab", "r");
struct mntent *entry;
struct stat stb, fsb;
@@ -2242,11 +2265,12 @@ S_fd_on_nosuid_fs(pTHX_ int fd)
}
if (mtab)
fclose(mtab);
-# endif /* mntent */
-# endif /* statfs */
+# endif /* getmntent+hasmntopt */
+# endif /* PERL_MOUNT_NOSUID: fstatfs or fstat+ustat+statfs */
# endif /* statvfs */
+
if (!check_okay)
- Perl_croak(aTHX_ "Can't check filesystem of script \"%s\"", PL_origfilename);
+ Perl_croak(aTHX_ "Can't check filesystem of script \"%s\" for nosuid", PL_origfilename);
return on_nosuid;
}
#endif /* IAMSUID */
@@ -3196,4 +3220,3 @@ read_e_script(pTHXo_ int idx, SV *buf_sv, int maxlen)
return 1;
}
-
diff --git a/perl.h b/perl.h
index b8d0dd8495..0370634b12 100644
--- a/perl.h
+++ b/perl.h
@@ -1077,9 +1077,7 @@ Free_t Perl_mfree (Malloc_t where);
#define PTR2NV(p) NUM2PTR(NV,p)
#ifdef USE_LONG_DOUBLE
-# if defined(HAS_LONG_DOUBLE) && (LONG_DOUBLESIZE > DOUBLESIZE)
-# define LDoub_t long double
-# else
+# if !(defined(HAS_LONG_DOUBLE) && (LONG_DOUBLESIZE > DOUBLESIZE))
# undef USE_LONG_DOUBLE /* Ouch! */
# endif
#endif
@@ -1123,43 +1121,48 @@ Free_t Perl_mfree (Malloc_t where);
default value for printing floating point numbers in Gconvert.
(see config.h)
*/
-#ifdef I_LIMITS
-#include <limits.h>
-#endif
-#ifdef I_FLOAT
-#include <float.h>
-#endif
-#ifndef HAS_LDBL_DIG
-#if LONG_DOUBLESIZE == 10
-#define LDBL_DIG 18 /* assume IEEE */
-#else
-#if LONG_DOUBLESIZE == 16
-#define LDBL_DIG 33 /* assume IEEE */
-#else
-#if LONG_DOUBLESIZE == DOUBLESIZE
-#define LDBL_DIG DBL_DIG /* bummer */
-#endif
-#endif
-#endif
-#endif
+# ifdef I_LIMITS
+# include <limits.h>
+# endif
+# ifdef I_FLOAT
+# include <float.h>
+# endif
+# ifndef HAS_LDBL_DIG
+# if LONG_DOUBLESIZE == 10
+# define LDBL_DIG 18 /* assume IEEE */
+# else
+# if LONG_DOUBLESIZE == 12
+# define LDBL_DIG 18 /* gcc? */
+# else
+# if LONG_DOUBLESIZE == 16
+# define LDBL_DIG 33 /* assume IEEE */
+# else
+# if LONG_DOUBLESIZE == DOUBLESIZE
+# define LDBL_DIG DBL_DIG /* bummer */
+# endif
+# endif
+# endif
+# endif
+# endif
#endif
#ifdef USE_LONG_DOUBLE
-# define HAS_LDOUB
- typedef LDoub_t NV;
+ typedef long double NV;
# define NVSIZE LONG_DOUBLESIZE
# define NV_DIG LDBL_DIG
-# define Perl_modf modfl
-# define Perl_frexp frexpl
-# define Perl_cos cosl
-# define Perl_sin sinl
-# define Perl_sqrt sqrtl
-# define Perl_exp expl
-# define Perl_log logl
-# define Perl_atan2 atan2l
-# define Perl_pow powl
-# define Perl_floor floorl
-# define Perl_fmod fmodl
+# ifdef HAS_SQRTL
+# define Perl_modf modfl
+# define Perl_frexp frexpl
+# define Perl_cos cosl
+# define Perl_sin sinl
+# define Perl_sqrt sqrtl
+# define Perl_exp expl
+# define Perl_log logl
+# define Perl_atan2 atan2l
+# define Perl_pow powl
+# define Perl_floor floorl
+# define Perl_fmod fmodl
+# endif
#else
typedef double NV;
# define NVSIZE DOUBLESIZE
@@ -1564,6 +1567,10 @@ typedef union any ANY;
# define PERL_SYS_INIT3(argvp,argcp,envp) PERL_SYS_INIT(argvp,argcp)
#endif
+#ifndef PERL_SYS_INIT3
+# define PERL_SYS_INIT3(argvp,argcp,envp) PERL_SYS_INIT(argvp,argcp)
+#endif
+
#ifndef MAXPATHLEN
# ifdef PATH_MAX
# ifdef _POSIX_PATH_MAX
@@ -3183,20 +3190,6 @@ typedef struct am_table_short AMTS;
# endif
#endif
-/* Mention
-
- INSTALL_USR_BIN_PERL
-
- I_SYS_MMAN
- HAS_MMAP
- HAS_MUNMAP
- HAS_MPROTECT
- HAS_MSYNC
- HAS_MADVISE
- Mmap_t
-
- here so that Configure picks them up. */
-
#ifdef IAMSUID
#ifdef I_SYS_STATVFS
@@ -3208,6 +3201,28 @@ typedef struct am_table_short AMTS;
#ifdef I_MNTENT
# include <mntent.h> /* for getmntent() */
#endif
+#ifdef I_SYS_STATFS
+# include <sys/statfs.h> /* for some statfs() */
+#endif
+#ifdef I_SYS_VFS
+# include <sys/vfs.h> /* for some statfs() */
+#endif
+#ifdef I_USTAT
+# include <ustat.h> /* for ustat() */
+#endif
+
+#if !defined(PERL_MOUNT_NOSUID) && defined(MOUNT_NOSUID)
+# define PERL_MOUNT_NOSUID MOUNT_NOSUID
+#endif
+#if !defined(PERL_MOUNT_NOSUID) && defined(MNT_NOSUID)
+# define PERL_MOUNT_NOSUID MNT_NOSUID
+#endif
+#if !defined(PERL_MOUNT_NOSUID) && defined(MS_NOSUID)
+# define PERL_MOUNT_NOSUID MS_NOSUID
+#endif
+#if !defined(PERL_MOUNT_NOSUID) && defined(M_NOSUID)
+# define PERL_MOUNT_NOSUID M_NOSUID
+#endif
#endif /* IAMSUID */
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 6344ee4f9a..da1425e6c1 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -893,7 +893,25 @@ EPOC is is now supported (on Psion 5).
=head2 DOS
-[TODO - Laszlo Molnar <laszlo.molnar@eth.ericsson.se>]
+=over 4
+
+=item *
+
+Perl now works with djgpp 2.02 (and 2.03 alpha).
+
+=item *
+
+Environment variable names are not converted to uppercase any more.
+
+=item *
+
+Wrong exit code from backticks now fixed.
+
+=item *
+
+This port is still using its own builtin globbing.
+
+=back
=head2 OS/2
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 18abdea7e1..0b1f68e848 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -636,7 +636,7 @@ Something like this will reproduce the error:
(F) You called C<perl -x/foo/bar>, but C</foo/bar> is not a directory
that you can chdir to, possibly because it doesn't exist.
-=item Can't check filesystem of script "%s"
+=item Can't check filesystem of script "%s" for nosuid
(P) For some reason you can't check the filesystem of the script for nosuid.
@@ -2361,6 +2361,10 @@ was string.
(P) The lexer got into a bad state while processing a case modifier.
+=item panic: %s
+
+(P) An internal error.
+
=item Parentheses missing around "%s" list
(W) You said something like
diff --git a/pp.c b/pp.c
index 43a2e7c17e..02fe84a732 100644
--- a/pp.c
+++ b/pp.c
@@ -5185,8 +5185,8 @@ Perl_unlock_condpair(pTHX_ void *svv)
Perl_croak(aTHX_ "panic: unlock_condpair unlocking mutex that we don't own");
MgOWNER(mg) = 0;
COND_SIGNAL(MgOWNERCONDP(mg));
- DEBUG_S(PerlIO_printf(Perl_debug_log, "0x%lx: unlock 0x%lx\n",
- (unsigned long)thr, (unsigned long)svv);)
+ DEBUG_S(PerlIO_printf(Perl_debug_log, "0x%"UVxf": unlock 0x%"UVxf"\n",
+ PTR2UV(thr), PTR2UV(svv));)
MUTEX_UNLOCK(MgMUTEXP(mg));
}
#endif /* USE_THREADS */
@@ -5210,8 +5210,8 @@ PP(pp_lock)
while (MgOWNER(mg))
COND_WAIT(MgOWNERCONDP(mg), MgMUTEXP(mg));
MgOWNER(mg) = thr;
- DEBUG_S(PerlIO_printf(Perl_debug_log, "0x%lx: pp_lock lock 0x%lx\n",
- (unsigned long)thr, (unsigned long)sv);)
+ DEBUG_S(PerlIO_printf(Perl_debug_log, "0x%"UVxf": pp_lock lock 0x%"UVxf"\n",
+ PTR2UV(thr), PTR2UV(sv));)
MUTEX_UNLOCK(MgMUTEXP(mg));
SAVEDESTRUCTOR_X(Perl_unlock_condpair, sv);
}
diff --git a/pp_ctl.c b/pp_ctl.c
index 5f937ba9df..912600710e 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2819,8 +2819,8 @@ PP(pp_require)
loader = *av_fetch((AV *)SvRV(loader), 0, TRUE);
}
- Perl_sv_setpvf(aTHX_ namesv, "/loader/0x%lx/%s",
- SvANY(loader), name);
+ Perl_sv_setpvf(aTHX_ namesv, "/loader/0x%"UVxf"/%s",
+ PTR2UV(SvANY(loader)), name);
tryname = SvPVX(namesv);
tryrsfp = 0;
diff --git a/proto.h b/proto.h
index 4393e48364..4097a71cd6 100644
--- a/proto.h
+++ b/proto.h
@@ -891,7 +891,7 @@ STATIC I32 S_regmatch(pTHX_ regnode *prog);
STATIC I32 S_regrepeat(pTHX_ regnode *p, I32 max);
STATIC I32 S_regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp);
STATIC I32 S_regtry(pTHX_ regexp *prog, char *startpos);
-STATIC bool S_reginclass(pTHX_ char *p, I32 c);
+STATIC bool S_reginclass(pTHX_ regnode *p, I32 c);
STATIC bool S_reginclassutf8(pTHX_ regnode *f, U8* p);
STATIC CHECKPOINT S_regcppush(pTHX_ I32 parenfloor);
STATIC char* S_regcppop(pTHX);
diff --git a/regcomp.c b/regcomp.c
index b522077e25..2d69750d8e 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -844,7 +844,7 @@ Perl_pregcomp(pTHX_ char *exp, char *xend, PMOP *pm)
DEBUG_r(if (!PL_colorset) reginitcolors());
DEBUG_r(PerlIO_printf(Perl_debug_log, "%sCompiling REx%s `%s%*s%s'\n",
PL_colors[4],PL_colors[5],PL_colors[0],
- xend - exp, PL_regprecomp, PL_colors[1]));
+ (int)(xend - exp), PL_regprecomp, PL_colors[1]));
PL_regflags = pm->op_pmflags;
PL_regsawback = 0;
@@ -944,7 +944,12 @@ Perl_pregcomp(pTHX_ char *exp, char *xend, PMOP *pm)
/* Starting-point info. */
again:
- if (OP(first) == EXACT); /* Empty, get anchored substr later. */
+ if (PL_regkind[(U8)OP(first) == EXACT]) {
+ if (OP(first) == EXACT); /* Empty, get anchored substr later. */
+ else if ((OP(first) == EXACTF || OP(first) == EXACTFL)
+ && !UTF)
+ r->regstclass = first;
+ }
else if (strchr((char*)PL_simple+4,OP(first)))
r->regstclass = first;
else if (PL_regkind[(U8)OP(first)] == BOUND ||
@@ -986,8 +991,8 @@ Perl_pregcomp(pTHX_ char *exp, char *xend, PMOP *pm)
r->reganch |= ROPT_SKIP;
/* Scan is after the zeroth branch, first is atomic matcher. */
- DEBUG_r(PerlIO_printf(Perl_debug_log, "first at %d\n",
- first - scan + 1));
+ DEBUG_r(PerlIO_printf(Perl_debug_log, "first at %"IVdf"\n",
+ (IV)(first - scan + 1)));
/*
* If there's something expensive in the r.e., find the
* longest literal string that must appear and make it the
@@ -2156,7 +2161,7 @@ S_regpposixcc(pTHX_ I32 value)
{
dTHR;
char *posixcc = 0;
- I32 namedclass = -1;
+ I32 namedclass = OOB_NAMEDCLASS;
if (value == '[' && PL_regcomp_parse + 1 < PL_regxend &&
/* I smell either [: or [= or [. -- POSIX has been here, right? */
@@ -2269,7 +2274,7 @@ S_regpposixcc(pTHX_ I32 value)
STATIC void
S_checkposixcc(pTHX)
{
- if (ckWARN(WARN_UNSAFE) && !SIZE_ONLY &&
+ if (!SIZE_ONLY && ckWARN(WARN_UNSAFE) &&
(*PL_regcomp_parse == ':' ||
*PL_regcomp_parse == '=' ||
*PL_regcomp_parse == '.')) {
@@ -2292,7 +2297,6 @@ STATIC regnode *
S_regclass(pTHX)
{
dTHR;
- register char *opnd, *s;
register UV value;
register I32 lastvalue = OOB_CHAR8;
register I32 range = 0;
@@ -2301,29 +2305,29 @@ S_regclass(pTHX)
I32 numlen;
I32 namedclass;
char *rangebegin;
+ bool need_class = 0;
- s = opnd = MASK(PL_regcode);
ret = reg_node(ANYOF);
- for (value = 0; value < ANYOF_SIZE; value++)
- REGC(0, s++);
+ if (SIZE_ONLY)
+ PL_regsize += ANYOF_SKIP;
+ else {
+ ret->flags = 0;
+ ANYOF_BITMAP_ZERO(ret);
+ PL_regcode += ANYOF_SKIP;
+ if (FOLD)
+ ANYOF_FLAGS(ret) |= ANYOF_FOLD;
+ if (LOC)
+ ANYOF_FLAGS(ret) |= ANYOF_LOCALE;
+ }
if (*PL_regcomp_parse == '^') { /* Complement of range. */
PL_regnaughty++;
PL_regcomp_parse++;
if (!SIZE_ONLY)
- ANYOF_FLAGS(opnd) |= ANYOF_INVERT;
- }
- if (!SIZE_ONLY) {
- PL_regcode += ANY_SKIP;
- if (FOLD)
- ANYOF_FLAGS(opnd) |= ANYOF_FOLD;
- if (LOC)
- ANYOF_FLAGS(opnd) |= ANYOF_LOCALE;
- }
- else {
- PL_regsize += ANY_SKIP;
+ ANYOF_FLAGS(ret) |= ANYOF_INVERT;
}
- checkposixcc();
+ if (!SIZE_ONLY && ckWARN(WARN_UNSAFE))
+ checkposixcc();
if (*PL_regcomp_parse == ']' || *PL_regcomp_parse == '-')
goto skipcond; /* allow 1st char to be ] or - */
@@ -2374,6 +2378,9 @@ S_regclass(pTHX)
}
}
if (namedclass > OOB_NAMEDCLASS) {
+ if (!need_class && !SIZE_ONLY)
+ ANYOF_CLASS_ZERO(ret);
+ need_class = 1;
if (range) { /* a-\d, a-[:digit:] */
if (!SIZE_ONLY) {
if (ckWARN(WARN_UNSAFE))
@@ -2383,8 +2390,8 @@ S_regclass(pTHX)
PL_regcomp_parse - rangebegin,
PL_regcomp_parse - rangebegin,
rangebegin);
- ANYOF_BITMAP_SET(opnd, lastvalue);
- ANYOF_BITMAP_SET(opnd, '-');
+ ANYOF_BITMAP_SET(ret, lastvalue);
+ ANYOF_BITMAP_SET(ret, '-');
}
range = 0; /* this is not a true range */
}
@@ -2392,235 +2399,235 @@ S_regclass(pTHX)
switch (namedclass) {
case ANYOF_ALNUM:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_ALNUM);
+ ANYOF_CLASS_SET(ret, ANYOF_ALNUM);
else {
for (value = 0; value < 256; value++)
if (isALNUM(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NALNUM:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NALNUM);
+ ANYOF_CLASS_SET(ret, ANYOF_NALNUM);
else {
for (value = 0; value < 256; value++)
if (!isALNUM(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_SPACE:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_SPACE);
+ ANYOF_CLASS_SET(ret, ANYOF_SPACE);
else {
for (value = 0; value < 256; value++)
if (isSPACE(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NSPACE:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NSPACE);
+ ANYOF_CLASS_SET(ret, ANYOF_NSPACE);
else {
for (value = 0; value < 256; value++)
if (!isSPACE(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_DIGIT:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_DIGIT);
+ ANYOF_CLASS_SET(ret, ANYOF_DIGIT);
else {
for (value = '0'; value <= '9'; value++)
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NDIGIT:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NDIGIT);
+ ANYOF_CLASS_SET(ret, ANYOF_NDIGIT);
else {
for (value = 0; value < '0'; value++)
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
for (value = '9' + 1; value < 256; value++)
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NALNUMC:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NALNUMC);
+ ANYOF_CLASS_SET(ret, ANYOF_NALNUMC);
else {
for (value = 0; value < 256; value++)
if (!isALNUMC(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_ALNUMC:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_ALNUMC);
+ ANYOF_CLASS_SET(ret, ANYOF_ALNUMC);
else {
for (value = 0; value < 256; value++)
if (isALNUMC(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_ALPHA:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_ALPHA);
+ ANYOF_CLASS_SET(ret, ANYOF_ALPHA);
else {
for (value = 0; value < 256; value++)
if (isALPHA(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NALPHA:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NALPHA);
+ ANYOF_CLASS_SET(ret, ANYOF_NALPHA);
else {
for (value = 0; value < 256; value++)
if (!isALPHA(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_ASCII:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_ASCII);
+ ANYOF_CLASS_SET(ret, ANYOF_ASCII);
else {
for (value = 0; value < 128; value++)
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NASCII:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NASCII);
+ ANYOF_CLASS_SET(ret, ANYOF_NASCII);
else {
for (value = 128; value < 256; value++)
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_CNTRL:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_CNTRL);
+ ANYOF_CLASS_SET(ret, ANYOF_CNTRL);
else {
for (value = 0; value < 256; value++)
if (isCNTRL(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
lastvalue = OOB_CHAR8;
break;
case ANYOF_NCNTRL:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NCNTRL);
+ ANYOF_CLASS_SET(ret, ANYOF_NCNTRL);
else {
for (value = 0; value < 256; value++)
if (!isCNTRL(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_GRAPH:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_GRAPH);
+ ANYOF_CLASS_SET(ret, ANYOF_GRAPH);
else {
for (value = 0; value < 256; value++)
if (isGRAPH(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NGRAPH:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NGRAPH);
+ ANYOF_CLASS_SET(ret, ANYOF_NGRAPH);
else {
for (value = 0; value < 256; value++)
if (!isGRAPH(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_LOWER:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_LOWER);
+ ANYOF_CLASS_SET(ret, ANYOF_LOWER);
else {
for (value = 0; value < 256; value++)
if (isLOWER(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NLOWER:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NLOWER);
+ ANYOF_CLASS_SET(ret, ANYOF_NLOWER);
else {
for (value = 0; value < 256; value++)
if (!isLOWER(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_PRINT:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_PRINT);
+ ANYOF_CLASS_SET(ret, ANYOF_PRINT);
else {
for (value = 0; value < 256; value++)
if (isPRINT(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NPRINT:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NPRINT);
+ ANYOF_CLASS_SET(ret, ANYOF_NPRINT);
else {
for (value = 0; value < 256; value++)
if (!isPRINT(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_PUNCT:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_PUNCT);
+ ANYOF_CLASS_SET(ret, ANYOF_PUNCT);
else {
for (value = 0; value < 256; value++)
if (isPUNCT(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NPUNCT:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NPUNCT);
+ ANYOF_CLASS_SET(ret, ANYOF_NPUNCT);
else {
for (value = 0; value < 256; value++)
if (!isPUNCT(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_UPPER:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_UPPER);
+ ANYOF_CLASS_SET(ret, ANYOF_UPPER);
else {
for (value = 0; value < 256; value++)
if (isUPPER(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NUPPER:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NUPPER);
+ ANYOF_CLASS_SET(ret, ANYOF_NUPPER);
else {
for (value = 0; value < 256; value++)
if (!isUPPER(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_XDIGIT:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_XDIGIT);
+ ANYOF_CLASS_SET(ret, ANYOF_XDIGIT);
else {
for (value = 0; value < 256; value++)
if (isXDIGIT(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
case ANYOF_NXDIGIT:
if (LOC)
- ANYOF_CLASS_SET(opnd, ANYOF_NXDIGIT);
+ ANYOF_CLASS_SET(ret, ANYOF_NXDIGIT);
else {
for (value = 0; value < 256; value++)
if (!isXDIGIT(value))
- ANYOF_BITMAP_SET(opnd, value);
+ ANYOF_BITMAP_SET(ret, value);
}
break;
default:
@@ -2628,7 +2635,7 @@ S_regclass(pTHX)
break;
}
if (LOC)
- ANYOF_FLAGS(opnd) |= ANYOF_CLASS;
+ ANYOF_FLAGS(ret) |= ANYOF_CLASS;
continue;
}
}
@@ -2657,7 +2664,7 @@ S_regclass(pTHX)
PL_regcomp_parse - rangebegin,
rangebegin);
if (!SIZE_ONLY)
- ANYOF_BITMAP_SET(opnd, '-');
+ ANYOF_BITMAP_SET(ret, '-');
} else
range = 1;
continue; /* do it next time */
@@ -2673,36 +2680,42 @@ S_regclass(pTHX)
if (isLOWER(lastvalue)) {
for (i = lastvalue; i <= value; i++)
if (isLOWER(i))
- ANYOF_BITMAP_SET(opnd, i);
+ ANYOF_BITMAP_SET(ret, i);
} else {
for (i = lastvalue; i <= value; i++)
if (isUPPER(i))
- ANYOF_BITMAP_SET(opnd, i);
+ ANYOF_BITMAP_SET(ret, i);
}
}
else
#endif
for ( ; lastvalue <= value; lastvalue++)
- ANYOF_BITMAP_SET(opnd, lastvalue);
+ ANYOF_BITMAP_SET(ret, lastvalue);
}
range = 0;
}
+ if (need_class) {
+ if (SIZE_ONLY)
+ PL_regsize += ANYOF_CLASS_ADD_SKIP;
+ else
+ PL_regcode += ANYOF_CLASS_ADD_SKIP;
+ }
/* optimize case-insensitive simple patterns (e.g. /[a-z]/i) */
if (!SIZE_ONLY &&
- (ANYOF_FLAGS(opnd) & (ANYOF_FLAGS_ALL ^ ANYOF_INVERT)) == ANYOF_FOLD) {
+ (ANYOF_FLAGS(ret) & (ANYOF_FLAGS_ALL ^ ANYOF_INVERT)) == ANYOF_FOLD) {
for (value = 0; value < 256; ++value) {
- if (ANYOF_BITMAP_TEST(opnd, value)) {
+ if (ANYOF_BITMAP_TEST(ret, value)) {
I32 cf = PL_fold[value];
- ANYOF_BITMAP_SET(opnd, cf);
+ ANYOF_BITMAP_SET(ret, cf);
}
}
- ANYOF_FLAGS(opnd) &= ~ANYOF_FOLD;
+ ANYOF_FLAGS(ret) &= ~ANYOF_FOLD;
}
/* optimize inverted simple patterns (e.g. [^a-z]) */
- if (!SIZE_ONLY && (ANYOF_FLAGS(opnd) & ANYOF_FLAGS_ALL) == ANYOF_INVERT) {
+ if (!SIZE_ONLY && (ANYOF_FLAGS(ret) & ANYOF_FLAGS_ALL) == ANYOF_INVERT) {
for (value = 0; value < ANYOF_BITMAP_SIZE; ++value)
- opnd[ANYOF_BITMAP_OFFSET + value] ^= ANYOF_FLAGS_ALL;
- ANYOF_FLAGS(opnd) = 0;
+ ANYOF_BITMAP(ret)[value] ^= ANYOF_FLAGS_ALL;
+ ANYOF_FLAGS(ret) = 0;
}
return ret;
}
@@ -2711,7 +2724,7 @@ STATIC regnode *
S_regclassutf8(pTHX)
{
dTHR;
- register char *opnd, *e;
+ register char *e;
register UV value;
register U32 lastvalue = OOB_UTF8;
register I32 range = 0;
@@ -2737,7 +2750,8 @@ S_regclassutf8(pTHX)
listsv = newSVpvn("# comment\n",10);
}
- checkposixcc();
+ if (!SIZE_ONLY && ckWARN(WARN_UNSAFE))
+ checkposixcc();
if (*PL_regcomp_parse == ']' || *PL_regcomp_parse == '-')
goto skipcond; /* allow 1st char to be ] or - */
@@ -3173,12 +3187,12 @@ S_dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
if (OP(node) == OPTIMIZED)
goto after_print;
regprop(sv, node);
- PerlIO_printf(Perl_debug_log, "%4d:%*s%s", node - start,
+ PerlIO_printf(Perl_debug_log, "%4"IVdf":%*s%s", (IV)(node - start),
2*l + 1, "", SvPVX(sv));
if (next == NULL) /* Next ptr. */
PerlIO_printf(Perl_debug_log, "(0)");
else
- PerlIO_printf(Perl_debug_log, "(%d)", next - start);
+ PerlIO_printf(Perl_debug_log, "(%"IVdf")", (IV)(next - start));
(void)PerlIO_putc(Perl_debug_log, '\n');
after_print:
if (PL_regkind[(U8)op] == BRANCHJ) {
@@ -3205,7 +3219,7 @@ S_dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
}
else if (op == ANYOF) {
node = NEXTOPER(node);
- node += ANY_SKIP;
+ node += ANYOF_SKIP;
}
else if (PL_regkind[(U8)op] == EXACT) {
/* Literal string, where present. */
@@ -3239,21 +3253,23 @@ Perl_regdump(pTHX_ regexp *r)
/* Header fields of interest. */
if (r->anchored_substr)
- PerlIO_printf(Perl_debug_log, "anchored `%s%.*s%s'%s at %d ",
+ PerlIO_printf(Perl_debug_log,
+ "anchored `%s%.*s%s'%s at %"IVdf" ",
PL_colors[0],
- SvCUR(r->anchored_substr) - (SvTAIL(r->anchored_substr)!=0),
+ (int)(SvCUR(r->anchored_substr) - (SvTAIL(r->anchored_substr)!=0)),
SvPVX(r->anchored_substr),
PL_colors[1],
SvTAIL(r->anchored_substr) ? "$" : "",
- r->anchored_offset);
+ (IV)r->anchored_offset);
if (r->float_substr)
- PerlIO_printf(Perl_debug_log, "floating `%s%.*s%s'%s at %d..%u ",
+ PerlIO_printf(Perl_debug_log,
+ "floating `%s%.*s%s'%s at %"IVdf"..%"UVuf" ",
PL_colors[0],
- SvCUR(r->float_substr) - (SvTAIL(r->float_substr)!=0),
+ (int)(SvCUR(r->float_substr) - (SvTAIL(r->float_substr)!=0)),
SvPVX(r->float_substr),
PL_colors[1],
SvTAIL(r->float_substr) ? "$" : "",
- r->float_min_offset, r->float_max_offset);
+ (IV)r->float_min_offset, (UV)r->float_max_offset);
if (r->check_substr)
PerlIO_printf(Perl_debug_log,
r->check_substr == r->float_substr
diff --git a/regcomp.h b/regcomp.h
index d6ee2f1be4..2fcf7a917a 100644
--- a/regcomp.h
+++ b/regcomp.h
@@ -87,6 +87,24 @@ struct regnode_2 {
U16 arg2;
};
+#define ANYOF_BITMAP_SIZE 32 /* 256 b/(8 b/B) */
+#define ANYOF_CLASSBITMAP_SIZE 4
+
+struct regnode_charclass {
+ U8 flags;
+ U8 type;
+ U16 next_off;
+ char bitmap[ANYOF_BITMAP_SIZE];
+};
+
+struct regnode_charclass_class {
+ U8 flags;
+ U8 type;
+ U16 next_off;
+ char bitmap[ANYOF_BITMAP_SIZE];
+ char classflags[ANYOF_CLASSBITMAP_SIZE];
+};
+
/* XXX fix this description.
Impose a limit of REG_INFTY on various pattern matching operations
to limit stack growth and to avoid "infinite" recursions.
@@ -160,14 +178,14 @@ struct regnode_2 {
#define SIZE_ONLY (PL_regcode == &PL_regdummy)
-/* Flags for first parameter byte [0] of ANYOF */
+/* Flags for node->flags of ANYOF */
#define ANYOF_CLASS 0x08
#define ANYOF_INVERT 0x04
#define ANYOF_FOLD 0x02
#define ANYOF_LOCALE 0x01
-/* Character classes for bytes [1..4] of ANYOF */
+/* Character classes for node->classflags of ANYOF */
#define ANYOF_ALNUM 0 /* \w, utf8::IsWord, isALNUM() */
#define ANYOF_NALNUM 1
@@ -207,29 +225,31 @@ struct regnode_2 {
/* Utility macros for the bitmap and classes of ANYOF */
-#define ANYOF_OPND_SIZE 1
-#define ANYOF_CLASS_SIZE 4
-#define ANYOF_BITMAP_SIZE 32 /* 256 b/(8 b/B) */
-#define ANYOF_SIZE (ANYOF_OPND_SIZE+ANYOF_CLASS_SIZE+ANYOF_BITMAP_SIZE)
+#define ANYOF_SIZE (sizeof(struct regnode_charclass))
+#define ANYOF_CLASS_SIZE (sizeof(struct regnode_charclass_class))
-#define ANYOF_FLAGS(p) ((p)[0])
+#define ANYOF_FLAGS(p) ((p)->flags)
#define ANYOF_FLAGS_ALL 0xff
#define ANYOF_BIT(c) (1 << ((c) & 7))
-#define ANYOF_CLASS_OFFSET ANYOF_OPND_SIZE
-#define ANYOF_CLASS_BYTE(p, c) ((p)[ANYOF_CLASS_OFFSET + (((c) >> 3) & 3)])
+#define ANYOF_CLASS_BYTE(p, c) (((struct regnode_charclass_class*)(p))->classflags[((c) >> 3) & 3])
#define ANYOF_CLASS_SET(p, c) (ANYOF_CLASS_BYTE(p, c) |= ANYOF_BIT(c))
#define ANYOF_CLASS_CLEAR(p, c) (ANYOF_CLASS_BYTE(p, c) &= ~ANYOF_BIT(c))
#define ANYOF_CLASS_TEST(p, c) (ANYOF_CLASS_BYTE(p, c) & ANYOF_BIT(c))
-#define ANYOF_BITMAP_OFFSET (ANYOF_CLASS_OFFSET+ANYOF_CLASS_SIZE)
-#define ANYOF_BITMAP_BYTE(p, c) ((p)[ANYOF_BITMAP_OFFSET + (((c) >> 3) & 31)])
+#define ANYOF_CLASS_ZERO(ret) Zero(((struct regnode_charclass_class*)(ret))->classflags, ANYOF_CLASSBITMAP_SIZE, char)
+#define ANYOF_BITMAP_ZERO(ret) Zero(((struct regnode_charclass*)(ret))->bitmap, ANYOF_BITMAP_SIZE, char)
+
+#define ANYOF_BITMAP(p) (((struct regnode_charclass*)(p))->bitmap)
+#define ANYOF_BITMAP_BYTE(p, c) (ANYOF_BITMAP(p)[((c) >> 3) & 31])
#define ANYOF_BITMAP_SET(p, c) (ANYOF_BITMAP_BYTE(p, c) |= ANYOF_BIT(c))
#define ANYOF_BITMAP_CLEAR(p,c) (ANYOF_BITMAP_BYTE(p, c) &= ~ANYOF_BIT(c))
#define ANYOF_BITMAP_TEST(p, c) (ANYOF_BITMAP_BYTE(p, c) & ANYOF_BIT(c))
-#define ANY_SKIP ((ANYOF_SIZE - 1)/sizeof(regnode) + 1)
+#define ANYOF_SKIP ((ANYOF_SIZE - 1)/sizeof(regnode))
+#define ANYOF_CLASS_SKIP ((ANYOF_CLASS_SIZE - 1)/sizeof(regnode))
+#define ANYOF_CLASS_ADD_SKIP (ANYOF_CLASS_SKIP - ANYOF_SKIP)
/*
* Utility definitions.
diff --git a/regexec.c b/regexec.c
index 65a3b90e74..c51ddeec74 100644
--- a/regexec.c
+++ b/regexec.c
@@ -176,10 +176,10 @@ S_regcppop(pTHX)
PL_regendp[paren] = tmps;
DEBUG_r(
PerlIO_printf(Perl_debug_log,
- " restoring \\%d to %d(%d)..%d%s\n",
- paren, PL_regstartp[paren],
- PL_reg_start_tmp[paren] - PL_bostr,
- PL_regendp[paren],
+ " restoring \\%"UVuf" to %"IVdf"(%"IVdf")..%"IVdf"%s\n",
+ (UV)paren, (IV)PL_regstartp[paren],
+ (IV)(PL_reg_start_tmp[paren] - PL_bostr),
+ (IV)PL_regendp[paren],
(paren > *PL_reglastparen ? "(no)" : ""));
);
}
@@ -314,7 +314,7 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
PL_colors[1],
(strlen(prog->precomp) > 60 ? "..." : ""),
PL_colors[0],
- (strend - strpos > 60 ? 60 : strend - strpos),
+ (int)(strend - strpos > 60 ? 60 : strend - strpos),
strpos, PL_colors[1],
(strend - strpos > 60 ? "..." : ""))
);
@@ -424,7 +424,8 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
(s ? "Found" : "Did not find"),
((check == prog->anchored_substr) ? "anchored" : "floating"),
PL_colors[0],
- SvCUR(check) - (SvTAIL(check)!=0), SvPVX(check),
+ (int)(SvCUR(check) - (SvTAIL(check)!=0)),
+ SvPVX(check),
PL_colors[1], (SvTAIL(check) ? "$" : ""),
(s ? " at offset " : "...\n") ) );
@@ -480,8 +481,8 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
DEBUG_r(PerlIO_printf(Perl_debug_log, "%s anchored substr `%s%.*s%s'%s",
(s ? "Found" : "Contradicts"),
PL_colors[0],
- SvCUR(prog->anchored_substr)
- - (SvTAIL(prog->anchored_substr)!=0),
+ (int)(SvCUR(prog->anchored_substr)
+ - (SvTAIL(prog->anchored_substr)!=0)),
SvPVX(prog->anchored_substr),
PL_colors[1], (SvTAIL(prog->anchored_substr) ? "$" : "")));
if (!s) {
@@ -532,8 +533,8 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
DEBUG_r(PerlIO_printf(Perl_debug_log, "%s floating substr `%s%.*s%s'%s",
(s ? "Found" : "Contradicts"),
PL_colors[0],
- SvCUR(prog->float_substr)
- - (SvTAIL(prog->float_substr)!=0),
+ (int)(SvCUR(prog->float_substr)
+ - (SvTAIL(prog->float_substr)!=0)),
SvPVX(prog->float_substr),
PL_colors[1], (SvTAIL(prog->float_substr) ? "$" : "")));
if (!s) {
@@ -776,7 +777,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
PL_colors[1],
(strlen(prog->precomp) > 60 ? "..." : ""),
PL_colors[0],
- (strend - startpos > 60 ? 60 : strend - startpos),
+ (int)(strend - startpos > 60 ? 60 : strend - startpos),
startpos, PL_colors[1],
(strend - startpos > 60 ? "..." : ""))
);
@@ -916,7 +917,11 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
}
else if (c = prog->regstclass) {
I32 doevery = (prog->reganch & ROPT_SKIP) == 0;
- char *cc;
+ char *m;
+ int ln;
+ int c1;
+ int c2;
+ char *e;
if (minlen)
dontbother = minlen - 1;
@@ -925,7 +930,6 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
/* We know what class it must start with. */
switch (OP(c)) {
case ANYOFUTF8:
- cc = MASK(c);
while (s < strend) {
if (REGINCLASSUTF8(c, (U8*)s)) {
if (tmp && regtry(prog, s))
@@ -939,9 +943,8 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
}
break;
case ANYOF:
- cc = MASK(c);
while (s < strend) {
- if (REGINCLASS(cc, *s)) {
+ if (REGINCLASS(c, *s)) {
if (tmp && regtry(prog, s))
goto got_it;
else
@@ -952,6 +955,43 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
s++;
}
break;
+ case EXACTF:
+ m = STRING(c);
+ ln = STR_LEN(c);
+ c1 = *m;
+ c2 = PL_fold[c1];
+ goto do_exactf;
+ case EXACTFL:
+ m = STRING(c);
+ ln = STR_LEN(c);
+ c1 = *m;
+ c2 = PL_fold_locale[c1];
+ do_exactf:
+ e = strend - ln;
+
+ /* Here it is NOT UTF! */
+ if (c1 == c2) {
+ while (s <= e) {
+ if ( *s == c1
+ && (ln == 1 || (OP(c) == EXACTF
+ ? ibcmp(s, m, ln)
+ : ibcmp_locale(s, m, ln)))
+ && regtry(prog, s) )
+ goto got_it;
+ s++;
+ }
+ } else {
+ while (s <= e) {
+ if ( (*s == c1 || *s == c2)
+ && (ln == 1 || (OP(c) == EXACTF
+ ? ibcmp(s, m, ln)
+ : ibcmp_locale(s, m, ln)))
+ && regtry(prog, s) )
+ goto got_it;
+ s++;
+ }
+ }
+ break;
case BOUNDL:
PL_reg_flags |= RF_tainted;
/* FALL THROUGH */
@@ -1363,6 +1403,9 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
s += UTF8SKIP(s);
}
break;
+ default:
+ croak("panic: unknown regstclass %d", (int)OP(c));
+ break;
}
}
else {
@@ -1481,8 +1524,8 @@ S_regtry(pTHX_ regexp *prog, char *startpos)
PL_reg_eval_set = RS_init;
DEBUG_r(DEBUG_s(
- PerlIO_printf(Perl_debug_log, " setting stack tmpbase at %i\n",
- PL_stack_sp - PL_stack_base);
+ PerlIO_printf(Perl_debug_log, " setting stack tmpbase at %"IVdf"\n",
+ (IV)(PL_stack_sp - PL_stack_base));
));
SAVEINT(cxstack[cxstack_ix].blk_oldsp);
cxstack[cxstack_ix].blk_oldsp = PL_stack_sp - PL_stack_base;
@@ -1645,8 +1688,8 @@ S_regmatch(pTHX_ regnode *prog)
pref0_len = pref_len;
regprop(prop, scan);
PerlIO_printf(Perl_debug_log,
- "%4i <%s%.*s%s%s%.*s%s%s%s%.*s%s>%*s|%3d:%*s%s\n",
- locinput - PL_bostr,
+ "%4"IVdf" <%s%.*s%s%s%.*s%s%s%s%.*s%s>%*s|%3"IVdf":%*s%s\n",
+ (IV)(locinput - PL_bostr),
PL_colors[4], pref0_len,
locinput - pref_len, PL_colors[5],
PL_colors[2], pref_len - pref0_len,
@@ -1655,7 +1698,7 @@ S_regmatch(pTHX_ regnode *prog)
PL_colors[0], l, locinput, PL_colors[1],
15 - l - pref_len + 1,
"",
- scan - PL_regprogram, PL_regindent*2, "",
+ (IV)(scan - PL_regprogram), PL_regindent*2, "",
SvPVX(prop));
} );
@@ -1801,7 +1844,6 @@ S_regmatch(pTHX_ regnode *prog)
nextchr = UCHARAT(locinput);
break;
case ANYOFUTF8:
- s = MASK(scan);
if (!REGINCLASSUTF8(scan, (U8*)locinput))
sayNO;
if (locinput >= PL_regeol)
@@ -1810,10 +1852,9 @@ S_regmatch(pTHX_ regnode *prog)
nextchr = UCHARAT(locinput);
break;
case ANYOF:
- s = MASK(scan);
if (nextchr < 0)
nextchr = UCHARAT(locinput);
- if (!REGINCLASS(s, nextchr))
+ if (!REGINCLASS(scan, nextchr))
sayNO;
if (!nextchr && locinput >= PL_regeol)
sayNO;
@@ -2141,7 +2182,7 @@ S_regmatch(pTHX_ regnode *prog)
n = ARG(scan);
PL_op = (OP_4tree*)PL_regdata->data[n];
- DEBUG_r( PerlIO_printf(Perl_debug_log, " re_eval 0x%x\n", PL_op) );
+ DEBUG_r( PerlIO_printf(Perl_debug_log, " re_eval 0x%"UVxf"\n", (UV)PL_op) );
PL_curpad = AvARRAY((AV*)PL_regdata->data[n + 2]);
PL_regendp[0] = PL_reg_magic->mg_len = locinput - PL_bostr;
@@ -2704,8 +2745,9 @@ S_regmatch(pTHX_ regnode *prog)
locinput = PL_reginput;
DEBUG_r(
PerlIO_printf(Perl_debug_log,
- "%*s matched %ld times, len=%ld...\n",
- REPORT_CODE_OFF+PL_regindent*2, "", n, l)
+ "%*s matched %d times, len=%"IVdf"...\n",
+ (int)(REPORT_CODE_OFF+PL_regindent*2), "",
+ n, (IV)l)
);
if (n >= ln) {
if (PL_regkind[(U8)OP(next)] == EXACT) {
@@ -2729,8 +2771,8 @@ S_regmatch(pTHX_ regnode *prog)
{
DEBUG_r(
PerlIO_printf(Perl_debug_log,
- "%*s trying tail with n=%ld...\n",
- REPORT_CODE_OFF+PL_regindent*2, "", n)
+ "%*s trying tail with n=%"IVdf"...\n",
+ (int)(REPORT_CODE_OFF+PL_regindent*2), "", (IV)n)
);
if (paren) {
if (n) {
@@ -3051,8 +3093,8 @@ S_regmatch(pTHX_ regnode *prog)
next = NULL;
break;
default:
- PerlIO_printf(Perl_error_log, "%lx %d\n",
- (unsigned long)scan, OP(scan));
+ PerlIO_printf(Perl_error_log, "%"UVxf" %d\n",
+ (UV)scan, OP(scan));
Perl_croak(aTHX_ "regexp memory corruption");
}
scan = next;
@@ -3110,7 +3152,6 @@ S_regrepeat(pTHX_ regnode *p, I32 max)
{
dTHR;
register char *scan;
- register char *opnd;
register I32 c;
register char *loceol = PL_regeol;
register I32 hardcount = 0;
@@ -3166,8 +3207,7 @@ S_regrepeat(pTHX_ regnode *p, I32 max)
}
break;
case ANYOF:
- opnd = MASK(p);
- while (scan < loceol && REGINCLASS(opnd, *scan))
+ while (scan < loceol && REGINCLASS(p, *scan))
scan++;
break;
case ALNUM:
@@ -3306,8 +3346,8 @@ S_regrepeat(pTHX_ regnode *p, I32 max)
regprop(prop, p);
PerlIO_printf(Perl_debug_log,
- "%*s %s can match %ld times out of %ld...\n",
- REPORT_CODE_OFF+1, "", SvPVX(prop),c,max);
+ "%*s %s can match %"IVdf" times out of %"IVdf"...\n",
+ REPORT_CODE_OFF+1, "", SvPVX(prop),(IV)c,(IV)max);
});
return(c);
@@ -3371,7 +3411,7 @@ S_regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp)
*/
STATIC bool
-S_reginclass(pTHX_ register char *p, register I32 c)
+S_reginclass(pTHX_ register regnode *p, register I32 c)
{
dTHR;
char flags = ANYOF_FLAGS(p);
diff --git a/run.c b/run.c
index decf04062b..38c35e095b 100644
--- a/run.c
+++ b/run.c
@@ -42,8 +42,9 @@ Perl_runops_debug(pTHX)
do {
if (PL_debug) {
if (PL_watchaddr != 0 && *PL_watchaddr != PL_watchok)
- PerlIO_printf(Perl_debug_log, "WARNING: %lx changed from %lx to %lx\n",
- (long)PL_watchaddr, (long)PL_watchok, (long)*PL_watchaddr);
+ PerlIO_printf(Perl_debug_log,
+ "WARNING: %"UVxf" changed from %"UVxf" to %"UVxf"\n",
+ PTR2UV(PL_watchaddr), PTR2UV(PL_watchok), (UV)*PL_watchaddr);
DEBUG_s(debstack());
DEBUG_t(debop(PL_op));
DEBUG_P(debprof(PL_op));
@@ -94,8 +95,8 @@ Perl_watch(pTHX_ char **addr)
dTHR;
PL_watchaddr = addr;
PL_watchok = *addr;
- PerlIO_printf(Perl_debug_log, "WATCHING, %lx is currently %lx\n",
- (long)PL_watchaddr, (long)PL_watchok);
+ PerlIO_printf(Perl_debug_log, "WATCHING, %"UVxf" is currently %"UVxf"\n",
+ PTR2UV(PL_watchaddr), PTR2UV(PL_watchok));
#endif /* DEBUGGING */
}
diff --git a/scope.c b/scope.c
index 1597acc9dc..e86a9fe183 100644
--- a/scope.c
+++ b/scope.c
@@ -918,11 +918,13 @@ Perl_cx_dump(pTHX_ PERL_CONTEXT *cx)
PerlIO_printf(Perl_debug_log, "CX %ld = %s\n", (long)(cx - cxstack), PL_block_type[CxTYPE(cx)]);
if (CxTYPE(cx) != CXt_SUBST) {
PerlIO_printf(Perl_debug_log, "BLK_OLDSP = %ld\n", (long)cx->blk_oldsp);
- PerlIO_printf(Perl_debug_log, "BLK_OLDCOP = 0x%lx\n", (long)cx->blk_oldcop);
+ PerlIO_printf(Perl_debug_log, "BLK_OLDCOP = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_oldcop));
PerlIO_printf(Perl_debug_log, "BLK_OLDMARKSP = %ld\n", (long)cx->blk_oldmarksp);
PerlIO_printf(Perl_debug_log, "BLK_OLDSCOPESP = %ld\n", (long)cx->blk_oldscopesp);
PerlIO_printf(Perl_debug_log, "BLK_OLDRETSP = %ld\n", (long)cx->blk_oldretsp);
- PerlIO_printf(Perl_debug_log, "BLK_OLDPM = 0x%lx\n", (long)cx->blk_oldpm);
+ PerlIO_printf(Perl_debug_log, "BLK_OLDPM = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_oldpm));
PerlIO_printf(Perl_debug_log, "BLK_GIMME = %s\n", cx->blk_gimme ? "LIST" : "SCALAR");
}
switch (CxTYPE(cx)) {
@@ -930,12 +932,12 @@ Perl_cx_dump(pTHX_ PERL_CONTEXT *cx)
case CXt_BLOCK:
break;
case CXt_SUB:
- PerlIO_printf(Perl_debug_log, "BLK_SUB.CV = 0x%lx\n",
- (long)cx->blk_sub.cv);
- PerlIO_printf(Perl_debug_log, "BLK_SUB.GV = 0x%lx\n",
- (long)cx->blk_sub.gv);
- PerlIO_printf(Perl_debug_log, "BLK_SUB.DFOUTGV = 0x%lx\n",
- (long)cx->blk_sub.dfoutgv);
+ PerlIO_printf(Perl_debug_log, "BLK_SUB.CV = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_sub.cv));
+ PerlIO_printf(Perl_debug_log, "BLK_SUB.GV = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_sub.gv));
+ PerlIO_printf(Perl_debug_log, "BLK_SUB.DFOUTGV = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_sub.dfoutgv));
PerlIO_printf(Perl_debug_log, "BLK_SUB.OLDDEPTH = %ld\n",
(long)cx->blk_sub.olddepth);
PerlIO_printf(Perl_debug_log, "BLK_SUB.HASARGS = %d\n",
@@ -949,8 +951,8 @@ Perl_cx_dump(pTHX_ PERL_CONTEXT *cx)
PL_op_desc[cx->blk_eval.old_op_type]);
PerlIO_printf(Perl_debug_log, "BLK_EVAL.OLD_NAME = %s\n",
cx->blk_eval.old_name);
- PerlIO_printf(Perl_debug_log, "BLK_EVAL.OLD_EVAL_ROOT = 0x%lx\n",
- (long)cx->blk_eval.old_eval_root);
+ PerlIO_printf(Perl_debug_log, "BLK_EVAL.OLD_EVAL_ROOT = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_eval.old_eval_root));
break;
case CXt_LOOP:
@@ -958,23 +960,23 @@ Perl_cx_dump(pTHX_ PERL_CONTEXT *cx)
cx->blk_loop.label);
PerlIO_printf(Perl_debug_log, "BLK_LOOP.RESETSP = %ld\n",
(long)cx->blk_loop.resetsp);
- PerlIO_printf(Perl_debug_log, "BLK_LOOP.REDO_OP = 0x%lx\n",
- (long)cx->blk_loop.redo_op);
- PerlIO_printf(Perl_debug_log, "BLK_LOOP.NEXT_OP = 0x%lx\n",
- (long)cx->blk_loop.next_op);
- PerlIO_printf(Perl_debug_log, "BLK_LOOP.LAST_OP = 0x%lx\n",
- (long)cx->blk_loop.last_op);
+ PerlIO_printf(Perl_debug_log, "BLK_LOOP.REDO_OP = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_loop.redo_op));
+ PerlIO_printf(Perl_debug_log, "BLK_LOOP.NEXT_OP = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_loop.next_op));
+ PerlIO_printf(Perl_debug_log, "BLK_LOOP.LAST_OP = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_loop.last_op));
PerlIO_printf(Perl_debug_log, "BLK_LOOP.ITERIX = %ld\n",
(long)cx->blk_loop.iterix);
- PerlIO_printf(Perl_debug_log, "BLK_LOOP.ITERARY = 0x%lx\n",
- (long)cx->blk_loop.iterary);
- PerlIO_printf(Perl_debug_log, "BLK_LOOP.ITERVAR = 0x%lx\n",
- (long)cx->blk_loop.itervar);
+ PerlIO_printf(Perl_debug_log, "BLK_LOOP.ITERARY = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_loop.iterary));
+ PerlIO_printf(Perl_debug_log, "BLK_LOOP.ITERVAR = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_loop.itervar));
if (cx->blk_loop.itervar)
- PerlIO_printf(Perl_debug_log, "BLK_LOOP.ITERSAVE = 0x%lx\n",
- (long)cx->blk_loop.itersave);
- PerlIO_printf(Perl_debug_log, "BLK_LOOP.ITERLVAL = 0x%lx\n",
- (long)cx->blk_loop.iterlval);
+ PerlIO_printf(Perl_debug_log, "BLK_LOOP.ITERSAVE = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_loop.itersave));
+ PerlIO_printf(Perl_debug_log, "BLK_LOOP.ITERLVAL = 0x%"UVxf"\n",
+ PTR2UV(cx->blk_loop.iterlval));
break;
case CXt_SUBST:
@@ -988,18 +990,18 @@ Perl_cx_dump(pTHX_ PERL_CONTEXT *cx)
(long)cx->sb_once);
PerlIO_printf(Perl_debug_log, "SB_ORIG = %s\n",
cx->sb_orig);
- PerlIO_printf(Perl_debug_log, "SB_DSTR = 0x%lx\n",
- (long)cx->sb_dstr);
- PerlIO_printf(Perl_debug_log, "SB_TARG = 0x%lx\n",
- (long)cx->sb_targ);
- PerlIO_printf(Perl_debug_log, "SB_S = 0x%lx\n",
- (long)cx->sb_s);
- PerlIO_printf(Perl_debug_log, "SB_M = 0x%lx\n",
- (long)cx->sb_m);
- PerlIO_printf(Perl_debug_log, "SB_STREND = 0x%lx\n",
- (long)cx->sb_strend);
- PerlIO_printf(Perl_debug_log, "SB_RXRES = 0x%lx\n",
- (long)cx->sb_rxres);
+ PerlIO_printf(Perl_debug_log, "SB_DSTR = 0x%"UVxf"\n",
+ PTR2UV(cx->sb_dstr));
+ PerlIO_printf(Perl_debug_log, "SB_TARG = 0x%"UVxf"\n",
+ PTR2UV(cx->sb_targ));
+ PerlIO_printf(Perl_debug_log, "SB_S = 0x%"UVxf"\n",
+ PTR2UV(cx->sb_s));
+ PerlIO_printf(Perl_debug_log, "SB_M = 0x%"UVxf"\n",
+ PTR2UV(cx->sb_m));
+ PerlIO_printf(Perl_debug_log, "SB_STREND = 0x%"UVxf"\n",
+ PTR2UV(cx->sb_strend));
+ PerlIO_printf(Perl_debug_log, "SB_RXRES = 0x%"UVxf"\n",
+ PTR2UV(cx->sb_rxres));
break;
}
#endif /* DEBUGGING */
diff --git a/sv.c b/sv.c
index 8707d60e3a..dc09f45263 100644
--- a/sv.c
+++ b/sv.c
@@ -186,7 +186,8 @@ S_del_sv(pTHX_ SV *p)
if (!ok) {
if (ckWARN_d(WARN_INTERNAL))
Perl_warner(aTHX_ WARN_INTERNAL,
- "Attempt to free non-arena SV: 0x%lx", (unsigned long)p);
+ "Attempt to free non-arena SV: 0x%"UVxf,
+ PTR2UV(p));
return;
}
}
@@ -1206,7 +1207,8 @@ Perl_sv_grow(pTHX_ register SV *sv, register STRLEN newlen)
#ifdef HAS_64K_LIMIT
if (newlen >= 0x10000) {
- PerlIO_printf(Perl_debug_log, "Allocation too large: %lx\n", newlen);
+ PerlIO_printf(Perl_debug_log,
+ "Allocation too large: %"UVxf"\n", (UV)newlen);
my_exit(1);
}
#endif /* HAS_64K_LIMIT */
@@ -1500,11 +1502,11 @@ Perl_sv_2iv(pTHX_ register SV *sv)
(void)SvNOK_on(sv);
(void)SvIOK_on(sv);
#if defined(USE_LONG_DOUBLE)
- DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%" PERL_PRIgldbl ")\n",
- (unsigned long)sv, SvNVX(sv)));
+ DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%"UVxf" 2nv(%" PERL_PRIgldbl ")\n",
+ PTR2UV(sv), SvNVX(sv)));
#else
- DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%g)\n",
- (unsigned long)sv, SvNVX(sv)));
+ DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%"UVxf" 2nv(%g)\n",
+ PTR2UV(sv), SvNVX(sv)));
#endif
if (SvNVX(sv) < (NV)IV_MAX + 0.5)
SvIVX(sv) = I_V(SvNVX(sv));
@@ -1542,8 +1544,8 @@ Perl_sv_2iv(pTHX_ register SV *sv)
sv_upgrade(sv, SVt_IV);
return 0;
}
- DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2iv(%ld)\n",
- (unsigned long)sv,(long)SvIVX(sv)));
+ DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%"UVxf" 2iv(%"IVdf")\n",
+ PTR2UV(sv),SvIVX(sv)));
return SvIsUV(sv) ? (IV)SvUVX(sv) : SvIVX(sv);
}
@@ -1638,11 +1640,13 @@ Perl_sv_2uv(pTHX_ register SV *sv)
(void)SvNOK_on(sv);
(void)SvIOK_on(sv);
#if defined(USE_LONG_DOUBLE)
- DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%" PERL_PRIgldbl ")\n",
- (unsigned long)sv, SvNVX(sv)));
+ DEBUG_c(PerlIO_printf(Perl_debug_log,
+ "0x%"UVxf" 2nv(%" PERL_PRIgldbl ")\n",
+ PTR2UV(sv), SvNVX(sv)));
#else
- DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%g)\n",
- (unsigned long)sv, SvNVX(sv)));
+ DEBUG_c(PerlIO_printf(Perl_debug_log,
+ "0x%"UVxf" 2nv(%g)\n",
+ PTR2UV(sv), SvNVX(sv)));
#endif
if (SvNVX(sv) < -0.5) {
SvIVX(sv) = I_V(SvNVX(sv));
@@ -1699,8 +1703,8 @@ Perl_sv_2uv(pTHX_ register SV *sv)
return 0;
}
- DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2uv(%lu)\n",
- (unsigned long)sv,SvUVX(sv)));
+ DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%"UVxf" 2uv(%"UVuf")\n",
+ (UV)sv,SvUVX(sv)));
return SvIsUV(sv) ? SvUVX(sv) : (UV)SvIVX(sv);
}
@@ -1756,15 +1760,16 @@ Perl_sv_2nv(pTHX_ register SV *sv)
#if defined(USE_LONG_DOUBLE)
DEBUG_c({
RESTORE_NUMERIC_STANDARD();
- PerlIO_printf(Perl_debug_log, "0x%lx num(%" PERL_PRIgldbl ")\n",
- (unsigned long)sv, SvNVX(sv));
+ PerlIO_printf(Perl_debug_log,
+ "0x%"UVxf" num(%" PERL_PRIgldbl ")\n",
+ PTR2UV(sv), SvNVX(sv));
RESTORE_NUMERIC_LOCAL();
});
#else
DEBUG_c({
RESTORE_NUMERIC_STANDARD();
- PerlIO_printf(Perl_debug_log, "0x%lx num(%g)\n",
- (unsigned long)sv, SvNVX(sv));
+ PerlIO_printf(Perl_debug_log, "0x%"UVxf" num(%g)\n",
+ PTR2UV(sv), SvNVX(sv));
RESTORE_NUMERIC_LOCAL();
});
#endif
@@ -1795,15 +1800,15 @@ Perl_sv_2nv(pTHX_ register SV *sv)
#if defined(USE_LONG_DOUBLE)
DEBUG_c({
RESTORE_NUMERIC_STANDARD();
- PerlIO_printf(Perl_debug_log, "0x%lx 2nv(%" PERL_PRIgldbl ")\n",
- (unsigned long)sv, SvNVX(sv));
+ PerlIO_printf(Perl_debug_log, "0x%"UVxf" 2nv(%" PERL_PRIgldbl ")\n",
+ PTR2UV(sv), SvNVX(sv));
RESTORE_NUMERIC_LOCAL();
});
#else
DEBUG_c({
RESTORE_NUMERIC_STANDARD();
- PerlIO_printf(Perl_debug_log, "0x%lx 1nv(%g)\n",
- (unsigned long)sv, SvNVX(sv));
+ PerlIO_printf(Perl_debug_log, "0x%"UVxf" 1nv(%g)\n",
+ PTR2UV(sv), SvNVX(sv));
RESTORE_NUMERIC_LOCAL();
});
#endif
@@ -2199,8 +2204,8 @@ Perl_sv_2pv(pTHX_ register SV *sv, STRLEN *lp)
*lp = s - SvPVX(sv);
SvCUR_set(sv, *lp);
SvPOK_on(sv);
- DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2pv(%s)\n",
- (unsigned long)sv,SvPVX(sv)));
+ DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%"UVxf" 2pv(%s)\n",
+ PTR2UV(sv),SvPVX(sv)));
return SvPVX(sv);
tokensave:
@@ -3466,7 +3471,8 @@ Perl_sv_free(pTHX_ SV *sv)
if (SvTEMP(sv)) {
if (ckWARN_d(WARN_DEBUGGING))
Perl_warner(aTHX_ WARN_DEBUGGING,
- "Attempt to free temp prematurely: SV 0x%lx", (unsigned long)sv);
+ "Attempt to free temp prematurely: SV 0x%"UVxf,
+ PTR2UV(sv));
return;
}
#endif
@@ -3845,11 +3851,11 @@ Perl_sv_gets(pTHX_ register SV *sv, register PerlIO *fp, I32 append)
bp = (STDCHAR*)SvPVX(sv) + append; /* move these two too to registers */
ptr = (STDCHAR*)PerlIO_get_ptr(fp);
DEBUG_P(PerlIO_printf(Perl_debug_log,
- "Screamer: entering, ptr=%ld, cnt=%ld\n",(long)ptr,(long)cnt));
+ "Screamer: entering, ptr=%"UVuf", cnt=%ld\n",PTR2UV(ptr),(long)cnt));
DEBUG_P(PerlIO_printf(Perl_debug_log,
- "Screamer: entering: FILE * thinks ptr=%ld, cnt=%ld, base=%ld\n",
- (long)PerlIO_get_ptr(fp), (long)PerlIO_get_cnt(fp),
- (long)(PerlIO_has_base(fp) ? PerlIO_get_base(fp) : 0)));
+ "Screamer: entering: FILE * thinks ptr=%"UVuf", cnt=%ld, base=%"UVuf"\n",
+ PTR2UV(PerlIO_get_ptr(fp)), (long)PerlIO_get_cnt(fp),
+ PTR2UV(PerlIO_has_base(fp) ? PerlIO_get_base(fp) : 0)));
for (;;) {
screamer:
if (cnt > 0) {
@@ -3879,24 +3885,25 @@ Perl_sv_gets(pTHX_ register SV *sv, register PerlIO *fp, I32 append)
}
DEBUG_P(PerlIO_printf(Perl_debug_log,
- "Screamer: going to getc, ptr=%ld, cnt=%ld\n",(long)ptr,(long)cnt));
+ "Screamer: going to getc, ptr=%"UVuf", cnt=%ld\n",
+ PTR2UV(ptr),(long)cnt));
PerlIO_set_ptrcnt(fp, ptr, cnt); /* deregisterize cnt and ptr */
DEBUG_P(PerlIO_printf(Perl_debug_log,
- "Screamer: pre: FILE * thinks ptr=%ld, cnt=%ld, base=%ld\n",
- (long)PerlIO_get_ptr(fp), (long)PerlIO_get_cnt(fp),
- (long)(PerlIO_has_base (fp) ? PerlIO_get_base(fp) : 0)));
+ "Screamer: pre: FILE * thinks ptr=%"UVuf", cnt=%ld, base=%"UVuf"\n",
+ PTR2UV(PerlIO_get_ptr(fp)), (long)PerlIO_get_cnt(fp),
+ PTR2UV(PerlIO_has_base (fp) ? PerlIO_get_base(fp) : 0)));
/* This used to call 'filbuf' in stdio form, but as that behaves like
getc when cnt <= 0 we use PerlIO_getc here to avoid introducing
another abstraction. */
i = PerlIO_getc(fp); /* get more characters */
DEBUG_P(PerlIO_printf(Perl_debug_log,
- "Screamer: post: FILE * thinks ptr=%ld, cnt=%ld, base=%ld\n",
- (long)PerlIO_get_ptr(fp), (long)PerlIO_get_cnt(fp),
- (long)(PerlIO_has_base (fp) ? PerlIO_get_base(fp) : 0)));
+ "Screamer: post: FILE * thinks ptr=%"UVuf", cnt=%ld, base=%"UVuf"\n",
+ PTR2UV(PerlIO_get_ptr(fp)), (long)PerlIO_get_cnt(fp),
+ PTR2UV(PerlIO_has_base (fp) ? PerlIO_get_base(fp) : 0)));
cnt = PerlIO_get_cnt(fp);
ptr = (STDCHAR*)PerlIO_get_ptr(fp); /* reregisterize cnt and ptr */
DEBUG_P(PerlIO_printf(Perl_debug_log,
- "Screamer: after getc, ptr=%ld, cnt=%ld\n",(long)ptr,(long)cnt));
+ "Screamer: after getc, ptr=%"UVuf", cnt=%ld\n",PTR2UV(ptr),(long)cnt));
if (i == EOF) /* all done for ever? */
goto thats_really_all_folks;
@@ -3920,12 +3927,12 @@ thats_really_all_folks:
if (shortbuffered)
cnt += shortbuffered;
DEBUG_P(PerlIO_printf(Perl_debug_log,
- "Screamer: quitting, ptr=%ld, cnt=%ld\n",(long)ptr,(long)cnt));
+ "Screamer: quitting, ptr=%"UVuf", cnt=%ld\n",PTR2UV(ptr),(long)cnt));
PerlIO_set_ptrcnt(fp, ptr, cnt); /* put these back or we're in trouble */
DEBUG_P(PerlIO_printf(Perl_debug_log,
- "Screamer: end: FILE * thinks ptr=%ld, cnt=%ld, base=%ld\n",
- (long)PerlIO_get_ptr(fp), (long)PerlIO_get_cnt(fp),
- (long)(PerlIO_has_base (fp) ? PerlIO_get_base(fp) : 0)));
+ "Screamer: end: FILE * thinks ptr=%"UVuf", cnt=%ld, base=%"UVuf"\n",
+ PTR2UV(PerlIO_get_ptr(fp)), (long)PerlIO_get_cnt(fp),
+ PTR2UV(PerlIO_has_base (fp) ? PerlIO_get_base(fp) : 0)));
*bp = '\0';
SvCUR_set(sv, bp - (STDCHAR*)SvPVX(sv)); /* set length */
DEBUG_P(PerlIO_printf(Perl_debug_log,
@@ -4628,8 +4635,8 @@ Perl_sv_pvn_force(pTHX_ SV *sv, STRLEN *lp)
if (!SvPOK(sv)) {
SvPOK_on(sv); /* validate pointer */
SvTAINT(sv);
- DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2pv(%s)\n",
- (unsigned long)sv,SvPVX(sv)));
+ DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%"UVxf" 2pv(%s)\n",
+ PTR2UV(sv),SvPVX(sv)));
}
}
return SvPVX(sv);
@@ -5624,7 +5631,7 @@ do_clean_named_objs(pTHXo_ SV *sv)
static void
do_clean_all(pTHXo_ SV *sv)
{
- DEBUG_D((PerlIO_printf(Perl_debug_log, "Cleaning loops: SV at 0x%lx\n", sv) );)
+ DEBUG_D((PerlIO_printf(Perl_debug_log, "Cleaning loops: SV at 0x%"UVxf"\n", PTR2UV(sv)) );)
SvFLAGS(sv) |= SVf_BREAK;
SvREFCNT_dec(sv);
}
diff --git a/t/lib/charnames.t b/t/lib/charnames.t
index 8d5c8db384..b03083e6d1 100644
--- a/t/lib/charnames.t
+++ b/t/lib/charnames.t
@@ -15,24 +15,28 @@ use charnames ':full';
print "not " unless "Here\N{EXCLAMATION MARK}?" eq 'Here!?';
print "ok 1\n";
-print "# \$res=$res \$\@='$@'\nnot "
- if $res = eval <<'EOE'
+{
+ no utf8; # UTEST can switch it on
+
+ print "# \$res=$res \$\@='$@'\nnot "
+ if $res = eval <<'EOE'
use charnames ":full";
"Here: \N{CYRILLIC SMALL LETTER BE}!";
1
EOE
- or $@ !~ /above 0xFF/;
-print "ok 2\n";
-# print "# \$res=$res \$\@='$@'\n";
+ or $@ !~ /above 0xFF/;
+ print "ok 2\n";
+ # print "# \$res=$res \$\@='$@'\n";
-print "# \$res=$res \$\@='$@'\nnot "
- if $res = eval <<'EOE'
+ print "# \$res=$res \$\@='$@'\nnot "
+ if $res = eval <<'EOE'
use charnames 'cyrillic';
"Here: \N{Be}!";
1
EOE
- or $@ !~ /CYRILLIC CAPITAL LETTER BE.*above 0xFF/;
-print "ok 3\n";
+ or $@ !~ /CYRILLIC CAPITAL LETTER BE.*above 0xFF/;
+ print "ok 3\n";
+}
# If octal representation of unicode char is \0xyzt, then the utf8 is \3xy\2zt
$encoded_be = "\320\261";
diff --git a/t/lib/io_unix.t b/t/lib/io_unix.t
index 7338861fb4..0e559e0d90 100644
--- a/t/lib/io_unix.t
+++ b/t/lib/io_unix.t
@@ -5,6 +5,10 @@ BEGIN {
chdir 't' if -d 't';
unshift @INC, '../lib' if -d '../lib';
}
+ # ``use IO::Socket'' executes too early below in the os2 block
+ if ($^O eq 'dos') {
+ print "1..0 # Skip: no fork\n";
+ }
}
use Config;
diff --git a/t/lib/ipc_sysv.t b/t/lib/ipc_sysv.t
index 00a157ba54..9777292f37 100755
--- a/t/lib/ipc_sysv.t
+++ b/t/lib/ipc_sysv.t
@@ -77,8 +77,34 @@ if ($Config{'d_msgget'} eq 'define' &&
my $msgtype = 1;
my $msgtext = "hello";
- msgsnd($msg,pack("L a*",$msgtype,$msgtext),0) or print "not ";
+ my $test2bad;
+ my $test5bad;
+ my $test6bad;
+
+ unless (msgsnd($msg,pack("L a*",$msgtype,$msgtext),IPC_NOWAIT)) {
+ print "not ";
+ $test2bad = 1;
+ }
print "ok 2\n";
+ if ($test2bad) {
+ print <<EOM;
+#
+# The failure of the subtest #2 may indicate that the message queue
+# resource limits either of the system or of the testing account
+# have been reached. Error message "Operating would block" is
+# usually indicative of this situation. The error message was now:
+# "$!"
+#
+# You can check the message queues with the 'ipcs' command and
+# you can remove unneeded queues with the 'ipcrm -q id' command.
+# You may also consider configuring your system or account
+# to have more message queue resources.
+#
+# Because of the subtest #2 failing also the substests #5 and #6 will
+# very probably also fail.
+#
+EOM
+ }
my $data;
msgctl($msg,IPC_STAT,$data) or print "not ";
@@ -88,13 +114,33 @@ if ($Config{'d_msgget'} eq 'define' &&
print "ok 4\n";
my $msgbuf;
- msgrcv($msg,$msgbuf,256,0,IPC_NOWAIT) or print "not ";
+ unless (msgrcv($msg,$msgbuf,256,0,IPC_NOWAIT)) {
+ print "not ";
+ $test5bad = 1;
+ }
print "ok 5\n";
+ if ($test5bad && $test2bad) {
+ print <<EOM;
+#
+# This failure was to be expected because the subtest #2 failed.
+#
+EOM
+ }
my($rmsgtype,$rmsgtext) = unpack("L a*",$msgbuf);
- print "not " unless($rmsgtype == $msgtype && $rmsgtext eq $msgtext);
+ unless($rmsgtype == $msgtype && $rmsgtext eq $msgtext) {
+ print "not ";
+ $test6bad = 1;
+ }
print "ok 6\n";
+ if ($test6bad && $test2bad) {
+ print <<EOM;
+#
+# This failure was to be expected because the subtest #2 failed.
+#
+EOM
+ }
} else {
for (1..6) {
print "ok $_\n"; # fake it
diff --git a/t/op/array.t b/t/op/array.t
index 3409556396..1108f494f8 100755
--- a/t/op/array.t
+++ b/t/op/array.t
@@ -1,6 +1,6 @@
#!./perl
-print "1..65\n";
+print "1..66\n";
#
# @foo, @bar, and @ary are also used from tie-stdarray after tie-ing them
@@ -211,3 +211,8 @@ my $t = 63;
sub reify { $_[1] = ++$t; print "@_\n"; }
reify('ok');
reify('ok');
+
+# qw() is no more a runtime split, it's compiletime.
+print "not " unless qw(foo bar snorfle)[2] eq 'snorfle';
+print "ok 66\n";
+
diff --git a/util.c b/util.c
index f4af3e936d..3f0374417e 100644
--- a/util.c
+++ b/util.c
@@ -95,7 +95,7 @@ Perl_safesysmalloc(MEM_SIZE size)
Perl_croak_nocontext("panic: malloc");
#endif
ptr = PerlMem_malloc(size?size:1); /* malloc(0) is NASTY on our system */
- DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%lx: (%05d) malloc %ld bytes\n",ptr,PL_an++,(long)size));
+ DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05d) malloc %ld bytes\n",PTR2UV(ptr),PL_an++,(long)size));
if (ptr != Nullch)
return ptr;
else if (PL_nomemok)
@@ -139,8 +139,8 @@ Perl_safesysrealloc(Malloc_t where,MEM_SIZE size)
#endif
ptr = PerlMem_realloc(where,size);
- DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%lx: (%05d) rfree\n",where,PL_an++));
- DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%lx: (%05d) realloc %ld bytes\n",ptr,PL_an++,(long)size));
+ DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05d) rfree\n",PTR2UV(where),PL_an++));
+ DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05d) realloc %ld bytes\n",PTR2UV(ptr),PL_an++,(long)size));
if (ptr != Nullch)
return ptr;
@@ -160,7 +160,7 @@ Free_t
Perl_safesysfree(Malloc_t where)
{
dTHX;
- DEBUG_m( PerlIO_printf(Perl_debug_log, "0x%lx: (%05d) free\n",(char *) where,PL_an++));
+ DEBUG_m( PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05d) free\n",PTR2UV(where),PL_an++));
if (where) {
/*SUPPRESS 701*/
PerlMem_free(where);
@@ -188,7 +188,7 @@ Perl_safesyscalloc(MEM_SIZE count, MEM_SIZE size)
#endif
size *= count;
ptr = PerlMem_malloc(size?size:1); /* malloc(0) is NASTY on our system */
- DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%lx: (%05d) calloc %ld x %ld bytes\n",ptr,PL_an++,(long)count,(long)size));
+ DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05d) calloc %ld x %ld bytes\n",PTR2UV(ptr),PL_an++,(long)count,(long)size));
if (ptr != Nullch) {
memset((void*)ptr, 0, size);
return ptr;
@@ -1555,8 +1555,8 @@ Perl_vcroak(pTHX_ const char* pat, va_list *args)
else
message = SvPV(msv,msglen);
- DEBUG_S(PerlIO_printf(Perl_debug_log, "croak: 0x%lx %s",
- (unsigned long) thr, message));
+ DEBUG_S(PerlIO_printf(Perl_debug_log, "croak: 0x%"UVxf" %s",
+ PTR2UV(thr), message));
if (PL_diehook) {
/* sv_2cv might call Perl_croak() */
@@ -1742,7 +1742,7 @@ Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args)
if (ckDEAD(err)) {
#ifdef USE_THREADS
- DEBUG_S(PerlIO_printf(Perl_debug_log, "croak: 0x%lx %s", (unsigned long) thr, message));
+ DEBUG_S(PerlIO_printf(Perl_debug_log, "croak: 0x%"UVxf" %s", PTR2UV(thr), message));
#endif /* USE_THREADS */
if (PL_diehook) {
/* sv_2cv might call Perl_croak() */
@@ -2581,7 +2581,7 @@ Perl_wait4pid(pTHX_ Pid_t pid, int *statusp, int flags)
if (!pid)
return -1;
if (pid > 0) {
- sprintf(spid, "%d", pid);
+ sprintf(spid, "%"IVdf, (IV)pid);
svp = hv_fetch(PL_pidstatus,spid,strlen(spid),FALSE);
if (svp && *svp != &PL_sv_undef) {
*statusp = SvIVX(*svp);
@@ -2597,7 +2597,7 @@ Perl_wait4pid(pTHX_ Pid_t pid, int *statusp, int flags)
pid = atoi(hv_iterkey(entry,(I32*)statusp));
sv = hv_iterval(PL_pidstatus,entry);
*statusp = SvIVX(sv);
- sprintf(spid, "%d", pid);
+ sprintf(spid, "%"IVdf, (IV)pid);
(void)hv_delete(PL_pidstatus,spid,strlen(spid),G_DISCARD);
return pid;
}
@@ -2637,7 +2637,7 @@ Perl_pidgone(pTHX_ Pid_t pid, int status)
register SV *sv;
char spid[TYPE_CHARS(int)];
- sprintf(spid, "%d", pid);
+ sprintf(spid, "%"IVdf, (IV)pid);
sv = *hv_fetch(PL_pidstatus,spid,strlen(spid),TRUE);
(void)SvUPGRADE(sv,SVt_IV);
SvIVX(sv) = status;
diff --git a/win32/config_H.bc b/win32/config_H.bc
index d4f8f664eb..b3335b08f3 100644
--- a/win32/config_H.bc
+++ b/win32/config_H.bc
@@ -358,18 +358,6 @@
*/
#define HAS_MKTIME /**/
-/* HAS_MSYNC:
- * This symbol, if defined, indicates that the msync system call is
- * available to synchronize a mapped file.
- */
-/*#define HAS_MSYNC /**/
-
-/* HAS_MUNMAP:
- * This symbol, if defined, indicates that the munmap system call is
- * available to unmap a region, usually mapped by mmap().
- */
-/*#define HAS_MUNMAP /**/
-
/* HAS_NICE:
* This symbol, if defined, indicates that the nice routine is
* available.
@@ -1771,18 +1759,6 @@
*/
#define HAS_MEMCHR /**/
-/* HAS_MMAP:
- * This symbol, if defined, indicates that the mmap system call is
- * available to map a file into memory.
- */
-/* Mmap_t:
- * This symbol holds the return type of the mmap() system call
- * (and simultaneously the type of the first argument).
- * Usually set to 'void *' or 'cadd_t'.
- */
-/*#define HAS_MMAP /**/
-#define Mmap_t void * /**/
-
/* HAS_MSG:
* This symbol, if defined, indicates that the entire msg*(2) library is
* supported (IPC mechanism based on message queues).
@@ -1889,26 +1865,6 @@
* Checking just with #ifdef might not be enough because this symbol
* has been known to be an enum.
*/
-/* HAS_SENDMSG:
- * This symbol, if defined, indicates that the sendmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_RECVMSG:
- * This symbol, if defined, indicates that the recvmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_MSGHDR:
- * This symbol, if defined, indicates that the struct msghdr
- * (BSD 4.3 or 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_CMSGHDR:
- * This symbol, if defined, indicates that the struct cmsghdr
- * (BSD 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
#define HAS_SOCKET /**/
/*#define HAS_SOCKETPAIR /**/
/*#define HAS_MSG_CTRUNC /**/
@@ -1917,10 +1873,6 @@
/*#define HAS_MSG_PEEK /**/
/*#define HAS_MSG_PROXY /**/
/*#define HAS_SCM_RIGHTS /**/
-/*#define HAS_SENDMSG /**/
-/*#define HAS_RECVMSG /**/
-/*#define HAS_STRUCT_MSGHDR /**/
-/*#define HAS_STRUCT_CMSGHDR /**/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
@@ -2058,17 +2010,6 @@
/*#define PWGECOS /**/
/*#define PWPASSWD /**/
-/* I_SYSUIO:
- * This symbol, if defined, indicates that <sys/uio.h> exists and
- * should be included.
- */
-/* HAS_STRUCT_IOVEC:
- * This symbol, if defined, indicates that the struct iovec
- * to do scatter writes/gather reads is supported.
- */
-/*#define I_SYSUIO /**/
-/*#define HAS_STRUCT_IOVEC /**/
-
/* Free_t:
* This variable contains the return type of free(). It is usually
* void, but occasionally int.
@@ -2218,25 +2159,6 @@
*/
#define HAS_LDBL_DIG /**/
-/* HAS_MADVISE:
- * This symbol, if defined, indicates that the madvise system call is
- * available to map a file into memory.
- */
-/*#define HAS_MADVISE /**/
-
-/* HAS_MPROTECT:
- * This symbol, if defined, indicates that the mprotect system call is
- * available to modify the access protection of a memory mapped file.
- */
-/*#define HAS_MPROTECT /**/
-
-/* HAS_READV:
- * This symbol, if defined, indicates that the readv routine is
- * available to do gather reads. You will also need <sys/uio.h>
- * and there I_SYSUIO.
- */
-/*#define HAS_READV /**/
-
/* HAS_SETSPENT:
* This symbol, if defined, indicates that the setspent system call is
* available to initialize the scan of SysV shadow password entries.
@@ -2277,12 +2199,6 @@
*/
#define HAS_TELLDIR_PROTO /**/
-/* HAS_WRITEV:
- * This symbol, if defined, indicates that the writev routine is
- * available to do scatter writes.
- */
-/*#define HAS_WRITEV /**/
-
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
* some sort is available.
@@ -2358,12 +2274,6 @@
*/
/*#define I_SOCKS /**/
-/* I_SYS_MMAN:
- * This symbol, if defined, indicates that <sys/mman.h> exists and
- * should be included.
- */
-/*#define I_SYS_MMAN /**/
-
/* I_SYS_MOUNT:
* This symbol, if defined, indicates that <sys/mount.h> exists and
* should be included.
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 4dc26b1201..3f794c3b89 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -358,18 +358,6 @@
*/
#define HAS_MKTIME /**/
-/* HAS_MSYNC:
- * This symbol, if defined, indicates that the msync system call is
- * available to synchronize a mapped file.
- */
-/*#define HAS_MSYNC /**/
-
-/* HAS_MUNMAP:
- * This symbol, if defined, indicates that the munmap system call is
- * available to unmap a region, usually mapped by mmap().
- */
-/*#define HAS_MUNMAP /**/
-
/* HAS_NICE:
* This symbol, if defined, indicates that the nice routine is
* available.
@@ -1771,18 +1759,6 @@
*/
#define HAS_MEMCHR /**/
-/* HAS_MMAP:
- * This symbol, if defined, indicates that the mmap system call is
- * available to map a file into memory.
- */
-/* Mmap_t:
- * This symbol holds the return type of the mmap() system call
- * (and simultaneously the type of the first argument).
- * Usually set to 'void *' or 'cadd_t'.
- */
-/*#define HAS_MMAP /**/
-#define Mmap_t void * /**/
-
/* HAS_MSG:
* This symbol, if defined, indicates that the entire msg*(2) library is
* supported (IPC mechanism based on message queues).
@@ -1889,26 +1865,6 @@
* Checking just with #ifdef might not be enough because this symbol
* has been known to be an enum.
*/
-/* HAS_SENDMSG:
- * This symbol, if defined, indicates that the sendmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_RECVMSG:
- * This symbol, if defined, indicates that the recvmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_MSGHDR:
- * This symbol, if defined, indicates that the struct msghdr
- * (BSD 4.3 or 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_CMSGHDR:
- * This symbol, if defined, indicates that the struct cmsghdr
- * (BSD 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
#define HAS_SOCKET /**/
/*#define HAS_SOCKETPAIR /**/
/*#define HAS_MSG_CTRUNC /**/
@@ -1917,10 +1873,6 @@
/*#define HAS_MSG_PEEK /**/
/*#define HAS_MSG_PROXY /**/
/*#define HAS_SCM_RIGHTS /**/
-/*#define HAS_SENDMSG /**/
-/*#define HAS_RECVMSG /**/
-/*#define HAS_STRUCT_MSGHDR /**/
-/*#define HAS_STRUCT_CMSGHDR /**/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
@@ -2058,17 +2010,6 @@
/*#define PWGECOS /**/
/*#define PWPASSWD /**/
-/* I_SYSUIO:
- * This symbol, if defined, indicates that <sys/uio.h> exists and
- * should be included.
- */
-/* HAS_STRUCT_IOVEC:
- * This symbol, if defined, indicates that the struct iovec
- * to do scatter writes/gather reads is supported.
- */
-/*#define I_SYSUIO /**/
-/*#define HAS_STRUCT_IOVEC /**/
-
/* Free_t:
* This variable contains the return type of free(). It is usually
* void, but occasionally int.
@@ -2218,25 +2159,6 @@
*/
#define HAS_LDBL_DIG /**/
-/* HAS_MADVISE:
- * This symbol, if defined, indicates that the madvise system call is
- * available to map a file into memory.
- */
-/*#define HAS_MADVISE /**/
-
-/* HAS_MPROTECT:
- * This symbol, if defined, indicates that the mprotect system call is
- * available to modify the access protection of a memory mapped file.
- */
-/*#define HAS_MPROTECT /**/
-
-/* HAS_READV:
- * This symbol, if defined, indicates that the readv routine is
- * available to do gather reads. You will also need <sys/uio.h>
- * and there I_SYSUIO.
- */
-/*#define HAS_READV /**/
-
/* HAS_SETSPENT:
* This symbol, if defined, indicates that the setspent system call is
* available to initialize the scan of SysV shadow password entries.
@@ -2277,12 +2199,6 @@
*/
#define HAS_TELLDIR_PROTO /**/
-/* HAS_WRITEV:
- * This symbol, if defined, indicates that the writev routine is
- * available to do scatter writes.
- */
-/*#define HAS_WRITEV /**/
-
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
* some sort is available.
@@ -2358,12 +2274,6 @@
*/
/*#define I_SOCKS /**/
-/* I_SYS_MMAN:
- * This symbol, if defined, indicates that <sys/mman.h> exists and
- * should be included.
- */
-/*#define I_SYS_MMAN /**/
-
/* I_SYS_MOUNT:
* This symbol, if defined, indicates that <sys/mount.h> exists and
* should be included.
diff --git a/win32/config_H.vc b/win32/config_H.vc
index ffbb10feb8..ebaf792e3c 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -1771,18 +1771,6 @@
*/
#define HAS_MEMCHR /**/
-/* HAS_MMAP:
- * This symbol, if defined, indicates that the mmap system call is
- * available to map a file into memory.
- */
-/* Mmap_t:
- * This symbol holds the return type of the mmap() system call
- * (and simultaneously the type of the first argument).
- * Usually set to 'void *' or 'cadd_t'.
- */
-/*#define HAS_MMAP /**/
-#define Mmap_t void * /**/
-
/* HAS_MSG:
* This symbol, if defined, indicates that the entire msg*(2) library is
* supported (IPC mechanism based on message queues).
@@ -1889,26 +1877,6 @@
* Checking just with #ifdef might not be enough because this symbol
* has been known to be an enum.
*/
-/* HAS_SENDMSG:
- * This symbol, if defined, indicates that the sendmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_RECVMSG:
- * This symbol, if defined, indicates that the recvmsg is supported
- * to send messages between sockets. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_MSGHDR:
- * This symbol, if defined, indicates that the struct msghdr
- * (BSD 4.3 or 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
-/* HAS_STRUCT_CMSGHDR:
- * This symbol, if defined, indicates that the struct cmsghdr
- * (BSD 4.4) is supported. You will also need struct
- * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
- */
#define HAS_SOCKET /**/
/*#define HAS_SOCKETPAIR /**/
/*#define HAS_MSG_CTRUNC /**/
@@ -1917,10 +1885,6 @@
/*#define HAS_MSG_PEEK /**/
/*#define HAS_MSG_PROXY /**/
/*#define HAS_SCM_RIGHTS /**/
-/*#define HAS_SENDMSG /**/
-/*#define HAS_RECVMSG /**/
-/*#define HAS_STRUCT_MSGHDR /**/
-/*#define HAS_STRUCT_CMSGHDR /**/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
@@ -2058,17 +2022,6 @@
/*#define PWGECOS /**/
/*#define PWPASSWD /**/
-/* I_SYSUIO:
- * This symbol, if defined, indicates that <sys/uio.h> exists and
- * should be included.
- */
-/* HAS_STRUCT_IOVEC:
- * This symbol, if defined, indicates that the struct iovec
- * to do scatter writes/gather reads is supported.
- */
-/*#define I_SYSUIO /**/
-/*#define HAS_STRUCT_IOVEC /**/
-
/* Free_t:
* This variable contains the return type of free(). It is usually
* void, but occasionally int.
@@ -2218,25 +2171,6 @@
*/
#define HAS_LDBL_DIG /**/
-/* HAS_MADVISE:
- * This symbol, if defined, indicates that the madvise system call is
- * available to map a file into memory.
- */
-/*#define HAS_MADVISE /**/
-
-/* HAS_MPROTECT:
- * This symbol, if defined, indicates that the mprotect system call is
- * available to modify the access protection of a memory mapped file.
- */
-/*#define HAS_MPROTECT /**/
-
-/* HAS_READV:
- * This symbol, if defined, indicates that the readv routine is
- * available to do gather reads. You will also need <sys/uio.h>
- * and there I_SYSUIO.
- */
-/*#define HAS_READV /**/
-
/* HAS_SETSPENT:
* This symbol, if defined, indicates that the setspent system call is
* available to initialize the scan of SysV shadow password entries.
@@ -2277,12 +2211,6 @@
*/
#define HAS_TELLDIR_PROTO /**/
-/* HAS_WRITEV:
- * This symbol, if defined, indicates that the writev routine is
- * available to do scatter writes.
- */
-/*#define HAS_WRITEV /**/
-
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
* some sort is available.
@@ -2358,12 +2286,6 @@
*/
/*#define I_SOCKS /**/
-/* I_SYS_MMAN:
- * This symbol, if defined, indicates that <sys/mman.h> exists and
- * should be included.
- */
-/*#define I_SYS_MMAN /**/
-
/* I_SYS_MOUNT:
* This symbol, if defined, indicates that <sys/mount.h> exists and
* should be included.