summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorafresh1 <afresh1@openbsd.org>2014-11-17 21:00:55 +0000
committerafresh1 <afresh1@openbsd.org>2014-11-17 21:00:55 +0000
commitdddc9066e829edd00a2b3a429552cbc19fbd9b34 (patch)
treed14117e6929581debe98dca1240327688194d64b
parentFix merge conflicts, remove extra files, match upstream perl-5.20.1 (diff)
downloadwireguard-openbsd-dddc9066e829edd00a2b3a429552cbc19fbd9b34.tar.xz
wireguard-openbsd-dddc9066e829edd00a2b3a429552cbc19fbd9b34.zip
Apply local patches to perl-5.20.1
ok deraadt@ sthen@ espie@ miod@
-rw-r--r--gnu/usr.bin/perl/Configure80
-rw-r--r--gnu/usr.bin/perl/Cross/config.sh-arm-linux1
-rw-r--r--gnu/usr.bin/perl/DynaLoader.sed4
-rw-r--r--gnu/usr.bin/perl/MANIFEST9
-rw-r--r--gnu/usr.bin/perl/Makefile.SH31
-rw-r--r--gnu/usr.bin/perl/Makefile.bsd-wrapper26
-rw-r--r--gnu/usr.bin/perl/Makefile.bsd-wrapper182
-rw-r--r--gnu/usr.bin/perl/NetWare/config.wc1
-rw-r--r--gnu/usr.bin/perl/Porting/Maintainers.pl3
-rw-r--r--gnu/usr.bin/perl/Porting/config.sh1
-rw-r--r--gnu/usr.bin/perl/Porting/pumpkin.pod4
-rw-r--r--gnu/usr.bin/perl/config.over2
-rw-r--r--gnu/usr.bin/perl/config_h.SH6
-rw-r--r--gnu/usr.bin/perl/configpm8
-rw-r--r--gnu/usr.bin/perl/configure.com3
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs378
-rwxr-xr-xgnu/usr.bin/perl/cpan/Digest-MD5/t/files.t2
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm5
-rw-r--r--gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm2
-rwxr-xr-xgnu/usr.bin/perl/cpan/autodie/t/truncate.t7
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm4
-rw-r--r--gnu/usr.bin/perl/deb.c2
-rw-r--r--gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm27
-rw-r--r--gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs27
-rw-r--r--gnu/usr.bin/perl/dist/Data-Dumper/t/recurse.t45
-rw-r--r--gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm1
-rw-r--r--gnu/usr.bin/perl/dist/Math-BigInt/lib/Math/BigInt.pm11
-rwxr-xr-xgnu/usr.bin/perl/dist/threads-shared/t/stress.t2
-rw-r--r--gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL2
-rw-r--r--gnu/usr.bin/perl/ext/POSIX/POSIX.xs24
-rw-r--r--gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod6
-rw-r--r--gnu/usr.bin/perl/ext/POSIX/t/posix.t22
-rw-r--r--gnu/usr.bin/perl/ext/re/t/reflags.t2
-rw-r--r--gnu/usr.bin/perl/git_version.h4
-rw-r--r--gnu/usr.bin/perl/hints/openbsd.sh19
-rw-r--r--gnu/usr.bin/perl/installperl38
-rw-r--r--gnu/usr.bin/perl/lib/AnyDBM_File.pm2
-rw-r--r--gnu/usr.bin/perl/lib/Config.t4
-rw-r--r--gnu/usr.bin/perl/lib/Getopt/Std.pm2
-rw-r--r--gnu/usr.bin/perl/lib/locale.t2
-rw-r--r--gnu/usr.bin/perl/patchlevel.h1
-rw-r--r--gnu/usr.bin/perl/plan9/config_sh.sample1
-rw-r--r--gnu/usr.bin/perl/pod/perlmodinstall.pod4
-rw-r--r--gnu/usr.bin/perl/pod/perlop.pod2
-rw-r--r--gnu/usr.bin/perl/shlib_version4
-rw-r--r--gnu/usr.bin/perl/symbian/config.sh1
-rw-r--r--gnu/usr.bin/perl/t/lib/h2ph.pht4
-rw-r--r--gnu/usr.bin/perl/t/loc_tools.pl3
-rw-r--r--gnu/usr.bin/perl/t/op/quotemeta.t16
-rw-r--r--gnu/usr.bin/perl/t/op/taint.t70
-rw-r--r--gnu/usr.bin/perl/t/porting/customized.dat2
-rw-r--r--gnu/usr.bin/perl/t/porting/dual-life.t6
-rwxr-xr-xgnu/usr.bin/perl/t/re/pat.t8
-rw-r--r--gnu/usr.bin/perl/t/uni/fold.t10
-rw-r--r--gnu/usr.bin/perl/t/uni/overload.t6
-rw-r--r--gnu/usr.bin/perl/uconfig.h10
-rw-r--r--gnu/usr.bin/perl/uconfig.sh1
-rw-r--r--gnu/usr.bin/perl/uconfig64.sh1
-rw-r--r--gnu/usr.bin/perl/util.c4
-rw-r--r--gnu/usr.bin/perl/utils.lst6
-rw-r--r--gnu/usr.bin/perl/utils/Makefile.PL18
-rw-r--r--gnu/usr.bin/perl/utils/h2ph.PL6
-rw-r--r--gnu/usr.bin/perl/utils/perlbug.PL11
-rw-r--r--gnu/usr.bin/perl/vutil.c4
-rw-r--r--gnu/usr.bin/perl/win32/Makefile1
-rw-r--r--gnu/usr.bin/perl/win32/config.ce1
-rw-r--r--gnu/usr.bin/perl/win32/config.gc1
-rw-r--r--gnu/usr.bin/perl/win32/config.vc1
-rw-r--r--gnu/usr.bin/perl/win32/makefile.mk1
73 files changed, 486 insertions, 630 deletions
diff --git a/gnu/usr.bin/perl/Configure b/gnu/usr.bin/perl/Configure
index af2d6c080f4..8e22a5fc7b2 100644
--- a/gnu/usr.bin/perl/Configure
+++ b/gnu/usr.bin/perl/Configure
@@ -589,6 +589,7 @@ d_localtime_r=''
d_localtime_r_needs_tzset=''
localtime_r_proto=''
d_locconv=''
+d_lc_monetary_2008=''
d_lockf=''
d_longdbl=''
longdblsize=''
@@ -2795,38 +2796,31 @@ $define|true|[yY]*)
*) case "$lns:$issymlink" in
*"ln"*" -s:"*"test -"?)
echo "Creating the symbolic links..." >&4
- echo "(First creating the subdirectories...)" >&4
cd ..
- awk '{print $1}' $src/MANIFEST | grep / | sed 's:/[^/]*$::' | sort -u | while true; do
- read directory
- test -z "$directory" && break
- mkdir -p $directory
- done
+ awk -v src="$src" '{
+ dir=$1;
+ if (!sub(/\/[^\/]*$/, "", dir)) { dir = "." }
+ mf[dir] = mf[dir]" "src"/"$1;
+ } END {
+ for (d in mf) {
+ if (d != ".") { system("mkdir -p "d) }
+ system("ln -sf "mf[d]" "d);
+ }
+ }' $src/MANIFEST
# Sanity check 1.
if test ! -d t/base; then
echo "Failed to create the subdirectories. Aborting." >&4
exit 1
fi
- echo "(Then creating the symlinks...)" >&4
- awk '{print $1}' $src/MANIFEST | while true; do
- read filename
- test -z "$filename" && break
- if test -f $filename; then
- if $issymlink $filename; then
- rm -f $filename
- fi
- fi
- if test -f $filename; then
- echo "$filename already exists, not symlinking."
- else
- ln -s $src/$filename $filename
- fi
- done
# Sanity check 2.
if test ! -f t/base/lex.t; then
echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4
exit 1
fi
+ if test ! -f x2p/walk.c; then
+ echo "Failed to create the symlinks (x2p/walk.c missing). Aborting." >&4
+ exit 1
+ fi
cd UU
;;
*) echo "(I cannot figure out how to do symbolic links, ignoring mksymlinks)." >&4
@@ -5349,6 +5343,25 @@ default|recommended)
eval $checkccflag
;;
esac
+ case "$gccversion" in
+ 1*) ;;
+ 2*) ;;
+ ?*) echo " "
+ echo "Checking if your compiler accepts -fno-delete-null-pointer-checks" 2>&1
+ echo 'int main(void) { return 0; }' > gcctest.c
+ if $cc -O2 -fno-delete-null-pointer-checks -o gcctest gcctest.c; then
+ echo "Yes, it does." 2>&1
+ case "$ccflags" in
+ *delete-null-pointer-checks*)
+ echo "Leaving current flags $ccflags alone." 2>&1
+ ;;
+ *) dflt="$dflt -fno-delete-null-pointer-checks" ;;
+ esac
+ else
+ echo "Nope, it doesn't, but that's ok." 2>&1
+ fi
+ ;;
+ esac
# For gcc, adding -pipe speeds up compilations for some, but apparently
# some assemblers can't read from stdin. (It also slows down compilations
# in other cases, but those are apparently rarer these days.) AD 5/2004.
@@ -15585,6 +15598,27 @@ $rm_try
set localeconv d_locconv
eval $inlibc
+: see if localtime_r calls tzset
+case "$d_locconv:$d_lc_monetary_2008" in
+define:)
+ $cat >try.c <<EOCP
+#include <locale.h>
+int main() {
+ struct lconv *lc = localeconv();
+ char int_p_cs_precedes = lc->int_p_cs_precedes;
+ return 0;
+}
+EOCP
+ set try
+ if eval $compile; then
+ d_lc_monetary_2008="$define"
+ else
+ d_lc_monetary_2008="$undef"
+ fi;
+ $rm_try
+ ;;
+esac
+
: see if lockf exists
set lockf d_lockf
eval $inlibc
@@ -22393,6 +22427,7 @@ xs_extensions=''
find_extensions='
for xxx in *; do
case "$xxx" in
+ CVS) ;;
DynaLoader|dynaload) ;;
*)
this_ext=`echo $xxx | $sed -e s/-/\\\//g`;
@@ -22620,6 +22655,8 @@ esac
nonxs_ext=''
for xxx in $nonxs_extensions ; do
case "$xxx" in
+ CVS|RCS|SCCS|.svn)
+ ;;
VMS*)
;;
*) nonxs_ext="$nonxs_ext $xxx"
@@ -23179,6 +23216,7 @@ d_localtime64='$d_localtime64'
d_localtime_r='$d_localtime_r'
d_localtime_r_needs_tzset='$d_localtime_r_needs_tzset'
d_locconv='$d_locconv'
+d_lc_monetary_2008='$d_lc_monetary_2008'
d_lockf='$d_lockf'
d_longdbl='$d_longdbl'
d_longlong='$d_longlong'
diff --git a/gnu/usr.bin/perl/Cross/config.sh-arm-linux b/gnu/usr.bin/perl/Cross/config.sh-arm-linux
index caba29b38c9..29c0cbcc0c5 100644
--- a/gnu/usr.bin/perl/Cross/config.sh-arm-linux
+++ b/gnu/usr.bin/perl/Cross/config.sh-arm-linux
@@ -296,6 +296,7 @@ d_isinf='define'
d_isnan='define'
d_isnanl='define'
d_killpg='define'
+d_lc_monetary_2008='undef'
d_lchown='define'
d_ldbl_dig='define'
d_libm_lib_version='define'
diff --git a/gnu/usr.bin/perl/DynaLoader.sed b/gnu/usr.bin/perl/DynaLoader.sed
index 658a11456cb..5ecef57624a 100644
--- a/gnu/usr.bin/perl/DynaLoader.sed
+++ b/gnu/usr.bin/perl/DynaLoader.sed
@@ -1,6 +1,6 @@
s@"dlutils.c"@"ext/DynaLoader/dlutils.c"@
/^#ifndef RTLD_LAZY/{N;N;c\
-#define VERSION "1.18"\
-#define XS_VERSION "1.18"\
+#define VERSION "1.20"\
+#define XS_VERSION "1.20"\
#define DLOPEN_WONT_DO_RELATIVE_PATHS
}
diff --git a/gnu/usr.bin/perl/MANIFEST b/gnu/usr.bin/perl/MANIFEST
index f4f740487d6..b1014262510 100644
--- a/gnu/usr.bin/perl/MANIFEST
+++ b/gnu/usr.bin/perl/MANIFEST
@@ -8,6 +8,7 @@ cflags.SH A script that emits C compilation flags per file
Changes Describe how to peruse changes between releases
charclass_invlists.h Compiled-in inversion lists
config_h.SH Produces config.h
+config.over Site-specific overrides for Configure defaults
configpm Produces lib/Config.pm
Configure Portability tool
configure.com Configure-equivalent for VMS
@@ -1724,6 +1725,10 @@ cpan/NEXT/t/dynamically_scoped_regex_vars.t NEXT
cpan/NEXT/t/next.t NEXT
cpan/NEXT/t/stringify.t NEXT
cpan/NEXT/t/unseen.t NEXT
+cpan/OpenBSD-MkTemp/lib/OpenBSD/MkTemp.pm OpenBSD::MkTemp
+cpan/OpenBSD-MkTemp/MkTemp.xs OpenBSD::MkTemp
+cpan/OpenBSD-MkTemp/README OpenBSD::MkTemp Readme
+cpan/OpenBSD-MkTemp/t/OpenBSD-MkTemp.t OpenBSD::MkTemp test file
cpan/Package-Constants/lib/Package/Constants.pm Package::Constants
cpan/Package-Constants/t/01_list.t Package::Constants tests
cpan/Params-Check/lib/Params/Check.pm Params::Check
@@ -2994,6 +2999,7 @@ dist/Data-Dumper/t/perl-74170.t Regression test for stack reallocation
dist/Data-Dumper/t/purity_deepcopy_maxdepth.t See if three Data::Dumper functions work
dist/Data-Dumper/t/qr.t See if Data::Dumper works with qr|/|
dist/Data-Dumper/t/quotekeys.t See if Data::Dumper::Quotekeys works
+dist/Data-Dumper/t/recurse.t See if Data::Dumper::Maxrecurse works
dist/Data-Dumper/t/seen.t See if Data::Dumper::Seen works
dist/Data-Dumper/t/sortkeys.t See if Data::Dumper::Sortkeys works
dist/Data-Dumper/t/sparseseen.t See if Data::Dumper::Sparseseen works
@@ -3587,7 +3593,6 @@ ext/B/B/Terse.pm Compiler Terse backend
ext/B/B/Xref.pm Compiler Xref backend
ext/B/B.xs Compiler backend external subroutines
ext/B/hints/darwin.pl Hints for named architecture
-ext/B/hints/openbsd.pl Hints for named architecture
ext/B/Makefile.PL Compiler backend makefile writer
ext/B/O.pm Compiler front-end module (-MO=...)
ext/B/t/b.t See if B works
@@ -4016,6 +4021,7 @@ fakesdio.h stdio in terms of PerlIO
feature.h Feature header
form.h Public declarations for formats
generate_uudmap.c Generate uudmap.h, the uuencode decoding map
+git_version.h Pre-generated git_version.h for OpenBSD
globals.c File to declare global symbols (for shared library)
globvar.sym Global variables that need hiding when embedded
gv.c Glob value code
@@ -4161,6 +4167,7 @@ lib/Class/Struct.pm Declare struct-like datatypes as Perl classes
lib/Class/Struct.t See if Class::Struct works
lib/Config/Extensions.pm Convenient hash lookup for built extensions
lib/Config/Extensions.t See if Config::Extensions works
+lib/Config_git.pl Pre-generated Config_git.pl for OpenBSD
lib/Config.t See if Config works
lib/CORE.pod document the CORE namespace
lib/DBM_Filter/compress.pm DBM Filter to compress keys/values
diff --git a/gnu/usr.bin/perl/Makefile.SH b/gnu/usr.bin/perl/Makefile.SH
index 6e43217e4ba..65b8d3a7ab4 100644
--- a/gnu/usr.bin/perl/Makefile.SH
+++ b/gnu/usr.bin/perl/Makefile.SH
@@ -571,12 +571,13 @@ all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafile
.PHONY: all translators utilities
+# OpenBSD uses pre-generated lib/Config_git.pl and git_version.h files
# Both git_version.h and lib/Config_git.pl are built
# by make_patchnum.pl.
-git_version.h: lib/Config_git.pl
-
-lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl
- $(MINIPERL) make_patchnum.pl
+#git_version.h: lib/Config_git.pl
+#
+#lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl
+# $(MINIPERL) make_patchnum.pl
# make sure that we recompile perl.c if the git version changes
perl$(OBJ_EXT): git_version.h
@@ -728,6 +729,14 @@ case "$osname" in
esac
case "$osname" in
+openbsd)
+ $spitshell >>$Makefile <<!GROK!THIS!
+# When building Perl itself, link with the thread library,
+# so that extensions can use thread functions even though Perl
+# is not threaded
+CCDLFLAGS = $ccdlflags -lpthread
+!GROK!THIS!
+ ;;
aix)
$spitshell >>$Makefile <<!GROK!THIS!
LIBS = $perllibs
@@ -933,10 +942,6 @@ lib/buildcustomize.pl: \$& \$(mini_obj) write_buildcustomize.pl
else
$spitshell >>$Makefile <<'!NO!SUBS!'
lib/buildcustomize.pl: $& $(mini_obj) write_buildcustomize.pl
- -@rm -f miniperl.xok
- $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \
- $(mini_obj) $(libs)
- $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1'
$(MINIPERL) -f write_buildcustomize.pl
!NO!SUBS!
fi
@@ -997,10 +1002,7 @@ $(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git
unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data
uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext)
- $(MINIPERL) lib/unicore/mktables -C lib/unicore -P pod -maketest -makelist -p
-# Commented out so always runs, mktables looks at far more files than we
-# can in this makefile to decide if needs to run or not
-# touch uni.data
+ touch uni.data
# $(PERL_EXE) and ext because pod_lib.pl needs Digest::MD5
# But also this ensures that all extensions are built before we try to scan
@@ -1263,14 +1265,13 @@ _mopup:
-rm -f *perl.xok
-rm -f cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump
-rm -f $(PERL_EXE) $(MINIPERL_EXE) $(LIBPERL) libperl.* microperl
- -rm -f config.arch config.over $(DTRACE_H)
+ -rm -f $(DTRACE_H)
# Do not 'make _tidy' directly.
_tidy:
-cd pod; $(LDLIBPTH) $(MAKE) clean
-cd utils; $(LDLIBPTH) $(MAKE) clean
-cd x2p; $(LDLIBPTH) $(MAKE) clean
- -rm -f lib/Config_git.pl git_version.h
-@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
$(MINIPERL) make_ext.pl --target=clean $$x MAKE=$(MAKE) ; \
done
@@ -1324,7 +1325,7 @@ _cleaner2:
-rmdir lib/TAP/Formatter lib/TAP lib/Sys/Syslog lib/Sys lib/Search
-rmdir lib/Scalar lib/Pod/Text lib/Pod/Simple lib/Pod/Perldoc
-rmdir lib/PerlIO/via lib/PerlIO lib/Perl lib/Parse/CPAN lib/Parse
- -rmdir lib/Params lib/Package lib/Net/FTP lib/Module/Load
+ -rmdir lib/Params lib/Package lib/OpenBSD lib/Net/FTP lib/Module/Load
-rmdir lib/Module/CoreList lib/Module/Build/Platform lib/Module/Build
-rmdir lib/Module lib/Memoize lib/Math/BigInt lib/Math/BigFloat
-rmdir lib/Math lib/MIME lib/Locale/Maketext lib/Locale/Codes
diff --git a/gnu/usr.bin/perl/Makefile.bsd-wrapper b/gnu/usr.bin/perl/Makefile.bsd-wrapper
index d18541fc19a..dc3f9a60805 100644
--- a/gnu/usr.bin/perl/Makefile.bsd-wrapper
+++ b/gnu/usr.bin/perl/Makefile.bsd-wrapper
@@ -1,6 +1,6 @@
-# $OpenBSD: Makefile.bsd-wrapper,v 1.95 2014/05/29 05:43:06 guenther Exp $
+# $OpenBSD: Makefile.bsd-wrapper,v 1.96 2014/11/17 21:00:55 afresh1 Exp $
#
-# Build wrapper for Perl 5.16.2
+# Build wrapper for Perl 5.20.1-RC2
#
# For ``NOMAN''
@@ -52,7 +52,7 @@ STRIPFLAGS='-s'
GEN_AFTER= bitcount.h config.h mg_data.h uudmap.h cflags makedepend \
myconfig Makefile Policy.sh pod/Makefile \
- x2p/Makefile x2p/cflags
+ x2p/Makefile
GENERATED= config.sh ${GEN_AFTER}
@@ -68,7 +68,7 @@ man.build: perl.build
beforedepend: config.sh config.h bitcount.h mg_data.h uudmap.h Makefile makedepend x2p/Makefile
cd ${.OBJDIR} && exec ${MAKE} depend
-perl.build: perl.lib
+perl.build: perl.lib DynaLoader.c
cd ${.OBJDIR} && exec ${MAKE}
config.sh: ${.CURDIR}/config.over
@@ -91,7 +91,7 @@ bitcount.h: generate_uudmap
./generate_uudmap uudmap.h bitcount.h mg_data.h
generate_uudmap: generate_uudmap.o
- ${CC} -o generate_uudmap generate_uudmap.o
+ ${CC} ${CPPFLAGS} ${CFLAGS} -o generate_uudmap generate_uudmap.o
pod/Makefile:
cd ${.OBJDIR}/pod && exec /bin/sh Makefile.SH
@@ -99,9 +99,6 @@ pod/Makefile:
x2p/Makefile:
cd ${.OBJDIR}/x2p && exec /bin/sh Makefile.SH
-x2p/cflags:
- cd ${.OBJDIR}/x2p && exec /bin/sh cflags.SH
-
# Never try to regenerate perly.c or perly.h
perly.c perly.h: perly.y
-@true
@@ -118,7 +115,7 @@ install: install.lib install.perl maninstall
install.perl:
cd ${.OBJDIR}; INSTALL=${INSTALL} INSTALL_COPY=${INSTALL_COPY} \
STRIPFLAGS=${STRIPFLAGS} INSTALLFLAGS=-o NOLIBINSTALL=1 \
- LD_LIBRARY_PATH=${.OBJDIR} exec ./perl installperl --destdir=${DESTDIR} -o STRIPFLAGS=${STRIPFLAGS}
+ LD_LIBRARY_PATH=${.OBJDIR} exec ./perl installperl --destdir=${DESTDIR} -o ${STRIPFLAGS}
test:
-@if [ -e Makefile ]; then ${MAKE} test; fi
@@ -160,8 +157,8 @@ CFLAGS+= -fno-tree-ter
.endif
# The DynaLoader extension is now compiled statically into libperl
-miniperl: ${GENERATED} ${SRCS1:S/.c/.o/g} opmini.o miniperl.o miniperlmain.o
- ${CC} -o miniperl ${SRCS1:S/.c/.o/g} opmini.o miniperl.o miniperlmain.o ${LDFLAGS} -lm -lpthread
+miniperl: ${GENERATED} ${SRCS1:S/.c/.o/g} caretx.o opmini.o perlmini.o miniperlmain.o
+ ${CC} ${CPPFLAGS} ${CFLAGS} -o $@ ${SRCS1:S/.c/.o/g} caretx.o opmini.o perlmini.o miniperlmain.o ${LDFLAGS} -lm -lutil
opmini.c: op.c
rm -f opmini.c
@@ -170,8 +167,11 @@ opmini.c: op.c
opmini.o: opmini.c
${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -c $> -o $@
-miniperl.o: perl.c
- ${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -c $> -o $@
+caretx.o: caretx.c
+ ${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -c $> -o $@
+
+perlmini.o: perlmini.c
+ ${CC} ${CPPFLAGS} ${CFLAGS} -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -c $> -o $@
lib/Config.pm: miniperl config.sh
cd ${.OBJDIR} && exec ${MAKE} preplibrary
diff --git a/gnu/usr.bin/perl/Makefile.bsd-wrapper1 b/gnu/usr.bin/perl/Makefile.bsd-wrapper1
index e97af14143e..3c28b84552d 100644
--- a/gnu/usr.bin/perl/Makefile.bsd-wrapper1
+++ b/gnu/usr.bin/perl/Makefile.bsd-wrapper1
@@ -38,8 +38,6 @@ _quick3p=
config_data 1 utils/config_data \
corelist 1 utils/corelist \
cpan 1 utils/cpan \
- cpan2dist 1 utils/cpan2dist \
- cpanp 1 utils/cpanp \
enc2xs 1 utils/enc2xs \
find2perl 1 x2p/find2perl \
function 1 cpan/Pod-Perldoc/corpus/perlfunc.pod \
@@ -71,6 +69,8 @@ _quick3p=
perl5180delta 1 pod/perl5180delta.pod \
perl5181delta 1 pod/perl5181delta.pod \
perl5182delta 1 pod/perl5182delta.pod \
+ perl5200delta 1 pod/perl5200delta.pod \
+ perl5201delta 1 pod/perl5201delta.pod \
perl561delta 1 pod/perl561delta.pod \
perl56delta 1 pod/perl56delta.pod \
perl581delta 1 pod/perl581delta.pod \
@@ -84,6 +84,7 @@ _quick3p=
perl589delta 1 pod/perl589delta.pod \
perl58delta 1 pod/perl58delta.pod \
perl5db 1 lib/perl5db.pl \
+ perlandroid 1 pod/perlandroid.pod \
perlapi 1 pod/perlapi.pod \
perlapio 1 pod/perlapio.pod \
perlartistic 1 pod/perlartistic.pod \
@@ -175,6 +176,7 @@ _quick3p=
perlstyle 1 pod/perlstyle.pod \
perlsub 1 pod/perlsub.pod \
perlsyn 1 pod/perlsyn.pod \
+ perlsynology 1 pod/perlsynology.pod \
perlthrtut 1 pod/perlthrtut.pod \
perltie 1 pod/perltie.pod \
perltoc 1 pod/perltoc.pod \
@@ -196,7 +198,6 @@ _quick3p=
piconv 1 utils/piconv \
pl2pm 1 utils/pl2pm \
pod2html 1 utils/pod2html \
- pod2latex 1 cpan/Pod-LaTeX/blib/script/pod2latex \
pod2man 1 cpan/podlators/blib/script/pod2man \
pod2text 1 cpan/podlators/blib/script/pod2text \
pod2usage 1 cpan/Pod-Usage/blib/script/pod2usage \
@@ -206,6 +207,7 @@ _quick3p=
prove 1 utils/prove \
psed 1 x2p/psed \
splain 1 utils/splain \
+ Test::Harness::Beyond 1 lib/TAP/Harness/Beyond.pod \
xsubpp 1 utils/xsubpp \
AnyDBM_File 3p lib/AnyDBM_File.pm \
App::Cpan 3p lib/App/Cpan.pm \
@@ -213,7 +215,6 @@ _quick3p=
App::Prove::State 3p lib/App/Prove/State.pm \
App::Prove::State::Result 3p lib/App/Prove/State/Result.pm \
App::Prove::State::Result::Test 3p lib/App/Prove/State/Result/Test.pm \
- Archive::Extract 3p lib/Archive/Extract.pm \
Archive::Tar 3p lib/Archive/Tar.pm \
Archive::Tar::File 3p lib/Archive/Tar/File.pm \
arybase 3p lib/arybase.pm \
@@ -223,6 +224,7 @@ _quick3p=
autodie::exception 3p lib/autodie/exception.pm \
autodie::exception::system 3p lib/autodie/exception/system.pm \
autodie::hints 3p lib/autodie/hints.pm \
+ autodie::skip 3p lib/autodie/skip.pm \
AutoLoader 3p lib/AutoLoader.pm \
AutoSplit 3p lib/AutoSplit.pm \
autouse 3p lib/autouse.pm \
@@ -230,8 +232,6 @@ _quick3p=
B::Concise 3p lib/B/Concise.pm \
B::Debug 3p lib/B/Debug.pm \
B::Deparse 3p lib/B/Deparse.pm \
- B::Lint 3p lib/B/Lint.pm \
- B::Lint::Debug 3p lib/B/Lint/Debug.pm \
B::Showlex 3p lib/B/Showlex.pm \
B::Terse 3p lib/B/Terse.pm \
B::Xref 3p lib/B/Xref.pm \
@@ -284,44 +284,6 @@ _quick3p=
CPAN::Queue 3p lib/CPAN/Queue.pm \
CPAN::Tarzip 3p lib/CPAN/Tarzip.pm \
CPAN::Version 3p lib/CPAN/Version.pm \
- CPANPLUS 3p lib/CPANPLUS.pm \
- CPANPLUS::Backend 3p lib/CPANPLUS/Backend.pm \
- CPANPLUS::Backend::RV 3p lib/CPANPLUS/Backend/RV.pm \
- CPANPLUS::Config 3p lib/CPANPLUS/Config.pm \
- CPANPLUS::Config::HomeEnv 3p lib/CPANPLUS/Config/HomeEnv.pm \
- CPANPLUS::Configure 3p lib/CPANPLUS/Configure.pm \
- CPANPLUS::Dist 3p lib/CPANPLUS/Dist.pm \
- CPANPLUS::Dist::Autobundle 3p lib/CPANPLUS/Dist/Autobundle.pm \
- CPANPLUS::Dist::Base 3p lib/CPANPLUS/Dist/Base.pm \
- CPANPLUS::Dist::Build 3p lib/CPANPLUS/Dist/Build.pm \
- CPANPLUS::Dist::Build::Constants 3p lib/CPANPLUS/Dist/Build/Constants.pm \
- CPANPLUS::Dist::MM 3p lib/CPANPLUS/Dist/MM.pm \
- CPANPLUS::Dist::Sample 3p lib/CPANPLUS/Dist/Sample.pm \
- CPANPLUS::Error 3p lib/CPANPLUS/Error.pm \
- CPANPLUS::FAQ 3p lib/CPANPLUS/FAQ.pod \
- CPANPLUS::Hacking 3p lib/CPANPLUS/Hacking.pod \
- CPANPLUS::Internals 3p lib/CPANPLUS/Internals.pm \
- CPANPLUS::Internals::Extract 3p lib/CPANPLUS/Internals/Extract.pm \
- CPANPLUS::Internals::Fetch 3p lib/CPANPLUS/Internals/Fetch.pm \
- CPANPLUS::Internals::Report 3p lib/CPANPLUS/Internals/Report.pm \
- CPANPLUS::Internals::Search 3p lib/CPANPLUS/Internals/Search.pm \
- CPANPLUS::Internals::Source 3p lib/CPANPLUS/Internals/Source.pm \
- CPANPLUS::Internals::Source::Memory 3p lib/CPANPLUS/Internals/Source/Memory.pm \
- CPANPLUS::Internals::Source::SQLite 3p lib/CPANPLUS/Internals/Source/SQLite.pm \
- CPANPLUS::Internals::Utils 3p lib/CPANPLUS/Internals/Utils.pm \
- CPANPLUS::Module 3p lib/CPANPLUS/Module.pm \
- CPANPLUS::Module::Author 3p lib/CPANPLUS/Module/Author.pm \
- CPANPLUS::Module::Author::Fake 3p lib/CPANPLUS/Module/Author/Fake.pm \
- CPANPLUS::Module::Checksums 3p lib/CPANPLUS/Module/Checksums.pm \
- CPANPLUS::Module::Fake 3p lib/CPANPLUS/Module/Fake.pm \
- CPANPLUS::Selfupdate 3p lib/CPANPLUS/Selfupdate.pm \
- CPANPLUS::Shell 3p lib/CPANPLUS/Shell.pm \
- CPANPLUS::Shell::Classic 3p lib/CPANPLUS/Shell/Classic.pm \
- CPANPLUS::Shell::Default 3p lib/CPANPLUS/Shell/Default.pm \
- CPANPLUS::Shell::Default::Plugins::CustomSource 3p lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm \
- CPANPLUS::Shell::Default::Plugins::HOWTO 3p lib/CPANPLUS/Shell/Default/Plugins/HOWTO.pod \
- CPANPLUS::Shell::Default::Plugins::Remote 3p lib/CPANPLUS/Shell/Default/Plugins/Remote.pm \
- CPANPLUS::Shell::Default::Plugins::Source 3p lib/CPANPLUS/Shell/Default/Plugins/Source.pm \
Cwd 3p lib/Cwd.pm \
Data::Dumper 3p lib/Data/Dumper.pm \
DB 3p lib/DB.pm \
@@ -333,7 +295,6 @@ _quick3p=
DBM_Filter::null 3p lib/DBM_Filter/null.pm \
DBM_Filter::utf8 3p lib/DBM_Filter/utf8.pm \
deprecate 3p lib/deprecate.pm \
- Devel::InnerPackage 3p lib/Devel/InnerPackage.pm \
Devel::Peek 3p lib/Devel/Peek.pm \
Devel::PPPort 3p lib/Devel/PPPort.pm \
Devel::SelfStubber 3p lib/Devel/SelfStubber.pm \
@@ -377,6 +338,7 @@ _quick3p=
English 3p lib/English.pm \
Env 3p lib/Env.pm \
Errno 3p lib/Errno.pm \
+ experimental 3p lib/experimental.pm \
Exporter 3p lib/Exporter.pm \
Exporter::Heavy 3p lib/Exporter/Heavy.pm \
ExtUtils::CBuilder 3p lib/ExtUtils/CBuilder.pm \
@@ -420,6 +382,7 @@ _quick3p=
ExtUtils::Packlist 3p lib/ExtUtils/Packlist.pm \
ExtUtils::ParseXS 3p lib/ExtUtils/ParseXS.pod \
ExtUtils::ParseXS::Constants 3p lib/ExtUtils/ParseXS/Constants.pm \
+ ExtUtils::ParseXS::Eval 3p lib/ExtUtils/ParseXS/Eval.pm \
ExtUtils::ParseXS::Utilities 3p lib/ExtUtils/ParseXS/Utilities.pm \
ExtUtils::testlib 3p lib/ExtUtils/testlib.pm \
ExtUtils::Typemaps 3p lib/ExtUtils/Typemaps.pm \
@@ -433,7 +396,6 @@ _quick3p=
feature 3p lib/feature.pm \
fields 3p lib/fields.pm \
File::Basename 3p lib/File/Basename.pm \
- File::CheckTree 3p lib/File/CheckTree.pm \
File::Compare 3p lib/File/Compare.pm \
File::Copy 3p lib/File/Copy.pm \
File::DosGlob 3p lib/File/DosGlob.pm \
@@ -490,6 +452,7 @@ _quick3p=
IO::Select 3p lib/IO/Select.pm \
IO::Socket 3p lib/IO/Socket.pm \
IO::Socket::INET 3p lib/IO/Socket/INET.pm \
+ IO::Socket::IP 3p lib/IO/Socket/IP.pm \
IO::Socket::UNIX 3p lib/IO/Socket/UNIX.pm \
IO::Uncompress::AnyInflate 3p lib/IO/Uncompress/AnyInflate.pm \
IO::Uncompress::AnyUncompress 3p lib/IO/Uncompress/AnyUncompress.pm \
@@ -519,26 +482,13 @@ _quick3p=
Locale::Codes::Changes 3p lib/Locale/Codes/Changes.pod \
Locale::Codes::Constants 3p lib/Locale/Codes/Constants.pod \
Locale::Codes::Country 3p lib/Locale/Codes/Country.pod \
- Locale::Codes::Country_Codes 3p lib/Locale/Codes/Country_Codes.pm \
- Locale::Codes::Country_Retired 3p lib/Locale/Codes/Country_Retired.pm \
Locale::Codes::Currency 3p lib/Locale/Codes/Currency.pod \
- Locale::Codes::Currency_Codes 3p lib/Locale/Codes/Currency_Codes.pm \
- Locale::Codes::Currency_Retired 3p lib/Locale/Codes/Currency_Retired.pm \
Locale::Codes::LangExt 3p lib/Locale/Codes/LangExt.pod \
- Locale::Codes::LangExt_Codes 3p lib/Locale/Codes/LangExt_Codes.pm \
- Locale::Codes::LangExt_Retired 3p lib/Locale/Codes/LangExt_Retired.pm \
Locale::Codes::LangFam 3p lib/Locale/Codes/LangFam.pod \
- Locale::Codes::LangFam_Codes 3p lib/Locale/Codes/LangFam_Codes.pm \
Locale::Codes::LangFam_Retired 3p lib/Locale/Codes/LangFam_Retired.pm \
Locale::Codes::Language 3p lib/Locale/Codes/Language.pod \
- Locale::Codes::Language_Codes 3p lib/Locale/Codes/Language_Codes.pm \
- Locale::Codes::Language_Retired 3p lib/Locale/Codes/Language_Retired.pm \
Locale::Codes::LangVar 3p lib/Locale/Codes/LangVar.pod \
- Locale::Codes::LangVar_Codes 3p lib/Locale/Codes/LangVar_Codes.pm \
- Locale::Codes::LangVar_Retired 3p lib/Locale/Codes/LangVar_Retired.pm \
Locale::Codes::Script 3p lib/Locale/Codes/Script.pod \
- Locale::Codes::Script_Codes 3p lib/Locale/Codes/Script_Codes.pm \
- Locale::Codes::Script_Retired 3p lib/Locale/Codes/Script_Retired.pm \
Locale::Country 3p lib/Locale/Country.pod \
Locale::Currency 3p lib/Locale/Currency.pod \
Locale::Language 3p lib/Locale/Language.pod \
@@ -549,11 +499,6 @@ _quick3p=
Locale::Maketext::Simple 3p lib/Locale/Maketext/Simple.pm \
Locale::Maketext::TPJ13 3p lib/Locale/Maketext/TPJ13.pod \
Locale::Script 3p lib/Locale/Script.pod \
- Log::Message 3p lib/Log/Message.pm \
- Log::Message::Config 3p lib/Log/Message/Config.pm \
- Log::Message::Handlers 3p lib/Log/Message/Handlers.pm \
- Log::Message::Item 3p lib/Log/Message/Item.pm \
- Log::Message::Simple 3p lib/Log/Message/Simple.pm \
Math::BigFloat 3p lib/Math/BigFloat.pm \
Math::BigInt 3p lib/Math/BigInt.pm \
Math::BigInt::Calc 3p lib/Math/BigInt/Calc.pm \
@@ -593,8 +538,6 @@ _quick3p=
Module::Load::Conditional 3p lib/Module/Load/Conditional.pm \
Module::Loaded 3p lib/Module/Loaded.pm \
Module::Metadata 3p lib/Module/Metadata.pm \
- Module::Pluggable 3p lib/Module/Pluggable.pm \
- Module::Pluggable::Object 3p lib/Module/Pluggable/Object.pm \
mro 3p lib/mro.pm \
NDBM_File 3p lib/NDBM_File.pm \
Net::Cmd 3p lib/Net/Cmd.pm \
@@ -613,7 +556,6 @@ _quick3p=
Net::Time 3p lib/Net/Time.pm \
NEXT 3p lib/NEXT.pm \
O 3p lib/O.pm \
- Object::Accessor 3p lib/Object/Accessor.pm \
ODBM_File 3p lib/ODBM_File.pm \
Opcode 3p lib/Opcode.pm \
open 3p lib/open.pm \
@@ -638,7 +580,6 @@ _quick3p=
Pod::Functions 3p lib/Pod/Functions.pm \
Pod::Html 3p lib/Pod/Html.pm \
Pod::InputObjects 3p lib/Pod/InputObjects.pm \
- Pod::LaTeX 3p lib/Pod/LaTeX.pm \
Pod::Man 3p lib/Pod/Man.pm \
Pod::ParseLink 3p lib/Pod/ParseLink.pm \
Pod::Parser 3p lib/Pod/Parser.pm \
@@ -711,6 +652,7 @@ _quick3p=
TAP::Formatter::File::Session 3p lib/TAP/Formatter/File/Session.pm \
TAP::Formatter::Session 3p lib/TAP/Formatter/Session.pm \
TAP::Harness 3p lib/TAP/Harness.pm \
+ TAP::Harness::Env 3p lib/TAP/Harness/Env.pm \
TAP::Object 3p lib/TAP/Object.pm \
TAP::Parser 3p lib/TAP/Parser.pm \
TAP::Parser::Aggregator 3p lib/TAP/Parser/Aggregator.pm \
@@ -741,15 +683,12 @@ _quick3p=
TAP::Parser::SourceHandler::Handle 3p lib/TAP/Parser/SourceHandler/Handle.pm \
TAP::Parser::SourceHandler::Perl 3p lib/TAP/Parser/SourceHandler/Perl.pm \
TAP::Parser::SourceHandler::RawTAP 3p lib/TAP/Parser/SourceHandler/RawTAP.pm \
- TAP::Parser::Utils 3p lib/TAP/Parser/Utils.pm \
TAP::Parser::YAMLish::Reader 3p lib/TAP/Parser/YAMLish/Reader.pm \
TAP::Parser::YAMLish::Writer 3p lib/TAP/Parser/YAMLish/Writer.pm \
Term::ANSIColor 3p lib/Term/ANSIColor.pm \
Term::Cap 3p lib/Term/Cap.pm \
Term::Complete 3p lib/Term/Complete.pm \
Term::ReadLine 3p lib/Term/ReadLine.pm \
- Term::UI 3p lib/Term/UI.pm \
- Term::UI::History 3p lib/Term/UI/History.pm \
Test 3p lib/Test.pm \
Test::Builder 3p lib/Test/Builder.pm \
Test::Builder::Module 3p lib/Test/Builder/Module.pm \
@@ -762,7 +701,6 @@ _quick3p=
Text::Abbrev 3p lib/Text/Abbrev.pm \
Text::Balanced 3p lib/Text/Balanced.pm \
Text::ParseWords 3p lib/Text/ParseWords.pm \
- Text::Soundex 3p lib/Text/Soundex.pm \
Text::Tabs 3p lib/Text/Tabs.pm \
Text::Wrap 3p lib/Text/Wrap.pm \
Thread 3p lib/Thread.pm \
diff --git a/gnu/usr.bin/perl/NetWare/config.wc b/gnu/usr.bin/perl/NetWare/config.wc
index 5ad00a8d724..7f2ab6d6e59 100644
--- a/gnu/usr.bin/perl/NetWare/config.wc
+++ b/gnu/usr.bin/perl/NetWare/config.wc
@@ -285,6 +285,7 @@ d_isinf='undef'
d_isnan='undef'
d_isnanl='undef'
d_killpg='undef'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='define'
d_libm_lib_version='undef'
diff --git a/gnu/usr.bin/perl/Porting/Maintainers.pl b/gnu/usr.bin/perl/Porting/Maintainers.pl
index fa851836067..89411796608 100644
--- a/gnu/usr.bin/perl/Porting/Maintainers.pl
+++ b/gnu/usr.bin/perl/Porting/Maintainers.pl
@@ -1493,6 +1493,9 @@ use File::Glob qw(:case);
lib/vmsish.{pm,t}
],
},
+ 'openbsd' => {
+ 'FILES' => q[lib/Config_git.pl],
+ },
);
# legacy CPAN flag
diff --git a/gnu/usr.bin/perl/Porting/config.sh b/gnu/usr.bin/perl/Porting/config.sh
index e95b23894fa..61cc8ad34bc 100644
--- a/gnu/usr.bin/perl/Porting/config.sh
+++ b/gnu/usr.bin/perl/Porting/config.sh
@@ -305,6 +305,7 @@ d_isinf='define'
d_isnan='define'
d_isnanl='define'
d_killpg='define'
+d_lc_monetary_2008='undef'
d_lchown='define'
d_ldbl_dig='define'
d_libm_lib_version='define'
diff --git a/gnu/usr.bin/perl/Porting/pumpkin.pod b/gnu/usr.bin/perl/Porting/pumpkin.pod
index a8c8fb0efdd..40fda825935 100644
--- a/gnu/usr.bin/perl/Porting/pumpkin.pod
+++ b/gnu/usr.bin/perl/Porting/pumpkin.pod
@@ -540,9 +540,9 @@ Here's how I generate a new patch. I'll use the hypothetical
5.004_07 to 5.004_08 patch as an example.
# unpack perl5.004_07/
- gzip -d -c perl5.004_07.tar.gz | tar -xof -
+ gzip -d -c perl5.004_07.tar.gz | tar -xf -
# unpack perl5.004_08/
- gzip -d -c perl5.004_08.tar.gz | tar -xof -
+ gzip -d -c perl5.004_08.tar.gz | tar -xf -
makepatch perl5.004_07 perl5.004_08 > perl5.004_08.pat
Makepatch will automatically generate appropriate B<rm> commands to remove
diff --git a/gnu/usr.bin/perl/config.over b/gnu/usr.bin/perl/config.over
index 2afd2bee3b5..77af62fad3f 100644
--- a/gnu/usr.bin/perl/config.over
+++ b/gnu/usr.bin/perl/config.over
@@ -1,7 +1,7 @@
#
# Override default paths when building in the OpenBSD src tree
#
-# $OpenBSD: config.over,v 1.17 2014/03/24 15:05:13 afresh1 Exp $
+# $OpenBSD: config.over,v 1.18 2014/11/17 21:00:55 afresh1 Exp $
#
# We use a different architecture name than the default
diff --git a/gnu/usr.bin/perl/config_h.SH b/gnu/usr.bin/perl/config_h.SH
index fd46735ad8f..5bdd95e9d0a 100644
--- a/gnu/usr.bin/perl/config_h.SH
+++ b/gnu/usr.bin/perl/config_h.SH
@@ -261,6 +261,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_locconv HAS_LOCALECONV /**/
+/* HAS_LC_MONETARY_2008:
+ * This symbol, if defined, indicates that the localeconv routine is
+ * available and has the additional members added in POSIX 1003.1-2008.
+ */
+#$d_lc_monetary_2008 HAS_LC_MONETARY_2008 /**/
+
/* HAS_LOCKF:
* This symbol, if defined, indicates that the lockf routine is
* available to do file locking.
diff --git a/gnu/usr.bin/perl/configpm b/gnu/usr.bin/perl/configpm
index d5bf5f26a83..39743d65ed3 100644
--- a/gnu/usr.bin/perl/configpm
+++ b/gnu/usr.bin/perl/configpm
@@ -87,6 +87,11 @@ $header_files =~ s/(?=.{64}) # If line is still overlength
(.{1,64})\ # Split at the last convenient space
/$1\n /gx;
+# libpaths that should be truncated after the first path element
+my %Libpathtrunc = map {($_,$_)}
+ qw(archlib archlibexp privlib privlibexp sitearch sitearchexp
+ sitelib sitelibexp);
+
# allowed opts as well as specifies default and initial values
my %Allowed_Opts = (
'glossary' => 1, # --no-glossary - no glossary file inclusion,
@@ -252,6 +257,9 @@ my %seen_quotes;
$in_v = $val !~ /$quote\n/;
next if $in_v;
+ # XXX - should use PERLLIB_SEP, not hard-code ':'
+ $val =~ s/^([^:]+).*${quote}\w*$/$1${quote}/ if $Libpathtrunc{$name};
+
s,/,::,g if $Extensions{$name};
$val =~ s/$quote\n?\z//;
diff --git a/gnu/usr.bin/perl/configure.com b/gnu/usr.bin/perl/configure.com
index 34f3309ac29..49b14f064cf 100644
--- a/gnu/usr.bin/perl/configure.com
+++ b/gnu/usr.bin/perl/configure.com
@@ -5407,6 +5407,7 @@ $ d_wctomb="define"
$ i_locale="define"
$ i_langinfo="define"
$ d_locconv="define"
+$ d_lc_monetary_2008="define"
$ d_nl_langinfo="define"
$ d_setlocale="define"
$ vms_cc_type="decc"
@@ -5427,6 +5428,7 @@ $ d_wctomb="undef"
$ i_locale="undef"
$ i_langinfo="undef"
$ d_locconv="undef"
+$ d_lc_monetary_2008="undef"
$ d_nl_langinfo="undef"
$ d_setlocale="undef"
$ ENDIF
@@ -6099,6 +6101,7 @@ $ WC "d_link='" + d_link + "'"
$ WC "d_llseek='undef'"
$ WC "d_localtime64='undef'"
$ WC "d_locconv='" + d_locconv + "'"
+$ WC "d_lc_monetary_2008='" + d_lc_monetary_2008 + "'"
$ WC "d_lockf='undef'"
$ WC "d_longdbl='" + d_longdbl + "'"
$ WC "d_longlong='" + d_longlong + "'"
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm
index 47aebd60743..9d7e5ed262d 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm
@@ -35,7 +35,8 @@ sub MY::libscan
my $path = shift;
return undef
- if $path =~ /(~|\.bak|_bak)$/ ||
+ if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ ||
+ $path =~ /(~|\.bak|_bak)$/ ||
$path =~ /\..*\.sw(o|p)$/ ||
$path =~ /\B\.svn\b/;
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm
index 47aebd60743..9d7e5ed262d 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm
@@ -35,7 +35,8 @@ sub MY::libscan
my $path = shift;
return undef
- if $path =~ /(~|\.bak|_bak)$/ ||
+ if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ ||
+ $path =~ /(~|\.bak|_bak)$/ ||
$path =~ /\..*\.sw(o|p)$/ ||
$path =~ /\B\.svn\b/;
diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
index f3b58f7eeee..e3696a43564 100644
--- a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
+++ b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
@@ -39,6 +39,8 @@ extern "C" {
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
+#include <sys/types.h>
+#include <md5.h>
#ifdef __cplusplus
}
#endif
@@ -88,61 +90,6 @@ static MAGIC *THX_sv_magicext(pTHX_ SV *sv, SV *obj, int type,
# define SvPVbyte(sv, lp) (sv_utf8_downgrade((sv), 0), SvPV((sv), (lp)))
#endif
-/* Perl does not guarantee that U32 is exactly 32 bits. Some system
- * has no integral type with exactly 32 bits. For instance, A Cray has
- * short, int and long all at 64 bits so we need to apply this macro
- * to reduce U32 values to 32 bits at appropriate places. If U32
- * really does have 32 bits then this is a no-op.
- */
-#if BYTEORDER > 0x4321 || defined(TRUNCATE_U32)
- #define TO32(x) ((x) & 0xFFFFffff)
- #define TRUNC32(x) ((x) &= 0xFFFFffff)
-#else
- #define TO32(x) (x)
- #define TRUNC32(x) /*nothing*/
-#endif
-
-/* The MD5 algorithm is defined in terms of little endian 32-bit
- * values. The following macros (and functions) allow us to convert
- * between native integers and such values.
- */
-#undef BYTESWAP
-#ifndef U32_ALIGNMENT_REQUIRED
- #if BYTEORDER == 0x1234 /* 32-bit little endian */
- #define BYTESWAP(x) (x) /* no-op */
-
- #elif BYTEORDER == 0x4321 /* 32-bit big endian */
- #define BYTESWAP(x) ((((x)&0xFF)<<24) \
- |(((x)>>24)&0xFF) \
- |(((x)&0x0000FF00)<<8) \
- |(((x)&0x00FF0000)>>8) )
- #endif
-#endif
-
-#ifndef BYTESWAP
-static void u2s(U32 u, U8* s)
-{
- *s++ = (U8)(u & 0xFF);
- *s++ = (U8)((u >> 8) & 0xFF);
- *s++ = (U8)((u >> 16) & 0xFF);
- *s = (U8)((u >> 24) & 0xFF);
-}
-
-#define s2u(s,u) ((u) = (U32)(*s) | \
- ((U32)(*(s+1)) << 8) | \
- ((U32)(*(s+2)) << 16) | \
- ((U32)(*(s+3)) << 24))
-#endif
-
-/* This structure keeps the current state of algorithm.
- */
-typedef struct {
- U32 A, B, C, D; /* current digest */
- U32 bytes_low; /* counts bytes in message */
- U32 bytes_high; /* turn it into a 64-bit counter */
- U8 buffer[128]; /* collect complete 64 byte blocks */
-} MD5_CTX;
-
#if defined(USE_ITHREADS) && defined(MGf_DUP)
STATIC int dup_md5_ctx(pTHX_ MAGIC *mg, CLONE_PARAMS *params)
{
@@ -176,325 +123,6 @@ STATIC MGVTBL vtbl_md5 = {
#endif
};
-
-/* Padding is added at the end of the message in order to fill a
- * complete 64 byte block (- 8 bytes for the message length). The
- * padding is also the reason the buffer in MD5_CTX have to be
- * 128 bytes.
- */
-static const unsigned char PADDING[64] = {
- 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-/* Constants for MD5Transform routine.
- */
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
-
-/* F, G, H and I are basic MD5 functions.
- */
-#define F(x, y, z) ((((x) & ((y) ^ (z))) ^ (z)))
-#define G(x, y, z) F(z, x, y)
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define I(x, y, z) ((y) ^ ((x) | (~z)))
-
-/* ROTATE_LEFT rotates x left n bits.
- */
-#define ROTATE_LEFT(x, n) (((x) << (n) | ((x) >> (32-(n)))))
-
-/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
- * Rotation is separate from addition to prevent recomputation.
- */
-#define FF(a, b, c, d, s, ac) \
- (a) += F ((b), (c), (d)) + (NEXTx) + (U32)(ac); \
- TRUNC32((a)); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- TRUNC32((a));
-
-#define GG(a, b, c, d, x, s, ac) \
- (a) += G ((b), (c), (d)) + X[x] + (U32)(ac); \
- TRUNC32((a)); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- TRUNC32((a));
-
-#define HH(a, b, c, d, x, s, ac) \
- (a) += H ((b), (c), (d)) + X[x] + (U32)(ac); \
- TRUNC32((a)); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- TRUNC32((a));
-
-#define II(a, b, c, d, x, s, ac) \
- (a) += I ((b), (c), (d)) + X[x] + (U32)(ac); \
- TRUNC32((a)); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- TRUNC32((a));
-
-
-static void
-MD5Init(MD5_CTX *ctx)
-{
- /* Start state */
- ctx->A = 0x67452301;
- ctx->B = 0xefcdab89;
- ctx->C = 0x98badcfe;
- ctx->D = 0x10325476;
-
- /* message length */
- ctx->bytes_low = ctx->bytes_high = 0;
-}
-
-
-static void
-MD5Transform(MD5_CTX* ctx, const U8* buf, STRLEN blocks)
-{
-#ifdef MD5_DEBUG
- static int tcount = 0;
-#endif
-
- U32 A = ctx->A;
- U32 B = ctx->B;
- U32 C = ctx->C;
- U32 D = ctx->D;
-
-#ifndef U32_ALIGNMENT_REQUIRED
- const U32 *x = (U32*)buf; /* really just type casting */
-#endif
-
- do {
- U32 a = A;
- U32 b = B;
- U32 c = C;
- U32 d = D;
-
-#if BYTEORDER == 0x1234 && !defined(U32_ALIGNMENT_REQUIRED)
- const U32 *X = x;
- #define NEXTx (*x++)
-#else
- U32 X[16]; /* converted values, used in round 2-4 */
- U32 *uptr = X;
- U32 tmp;
- #ifdef BYTESWAP
- #define NEXTx (tmp=*x++, *uptr++ = BYTESWAP(tmp))
- #else
- #define NEXTx (s2u(buf,tmp), buf += 4, *uptr++ = tmp)
- #endif
-#endif
-
-#ifdef MD5_DEBUG
- if (buf == ctx->buffer)
- fprintf(stderr,"%5d: Transform ctx->buffer", ++tcount);
- else
- fprintf(stderr,"%5d: Transform %p (%d)", ++tcount, buf, blocks);
-
- {
- int i;
- fprintf(stderr,"[");
- for (i = 0; i < 16; i++) {
- fprintf(stderr,"%x,", x[i]);
- }
- fprintf(stderr,"]\n");
- }
-#endif
-
- /* Round 1 */
- FF (a, b, c, d, S11, 0xd76aa478); /* 1 */
- FF (d, a, b, c, S12, 0xe8c7b756); /* 2 */
- FF (c, d, a, b, S13, 0x242070db); /* 3 */
- FF (b, c, d, a, S14, 0xc1bdceee); /* 4 */
- FF (a, b, c, d, S11, 0xf57c0faf); /* 5 */
- FF (d, a, b, c, S12, 0x4787c62a); /* 6 */
- FF (c, d, a, b, S13, 0xa8304613); /* 7 */
- FF (b, c, d, a, S14, 0xfd469501); /* 8 */
- FF (a, b, c, d, S11, 0x698098d8); /* 9 */
- FF (d, a, b, c, S12, 0x8b44f7af); /* 10 */
- FF (c, d, a, b, S13, 0xffff5bb1); /* 11 */
- FF (b, c, d, a, S14, 0x895cd7be); /* 12 */
- FF (a, b, c, d, S11, 0x6b901122); /* 13 */
- FF (d, a, b, c, S12, 0xfd987193); /* 14 */
- FF (c, d, a, b, S13, 0xa679438e); /* 15 */
- FF (b, c, d, a, S14, 0x49b40821); /* 16 */
-
- /* Round 2 */
- GG (a, b, c, d, 1, S21, 0xf61e2562); /* 17 */
- GG (d, a, b, c, 6, S22, 0xc040b340); /* 18 */
- GG (c, d, a, b, 11, S23, 0x265e5a51); /* 19 */
- GG (b, c, d, a, 0, S24, 0xe9b6c7aa); /* 20 */
- GG (a, b, c, d, 5, S21, 0xd62f105d); /* 21 */
- GG (d, a, b, c, 10, S22, 0x2441453); /* 22 */
- GG (c, d, a, b, 15, S23, 0xd8a1e681); /* 23 */
- GG (b, c, d, a, 4, S24, 0xe7d3fbc8); /* 24 */
- GG (a, b, c, d, 9, S21, 0x21e1cde6); /* 25 */
- GG (d, a, b, c, 14, S22, 0xc33707d6); /* 26 */
- GG (c, d, a, b, 3, S23, 0xf4d50d87); /* 27 */
- GG (b, c, d, a, 8, S24, 0x455a14ed); /* 28 */
- GG (a, b, c, d, 13, S21, 0xa9e3e905); /* 29 */
- GG (d, a, b, c, 2, S22, 0xfcefa3f8); /* 30 */
- GG (c, d, a, b, 7, S23, 0x676f02d9); /* 31 */
- GG (b, c, d, a, 12, S24, 0x8d2a4c8a); /* 32 */
-
- /* Round 3 */
- HH (a, b, c, d, 5, S31, 0xfffa3942); /* 33 */
- HH (d, a, b, c, 8, S32, 0x8771f681); /* 34 */
- HH (c, d, a, b, 11, S33, 0x6d9d6122); /* 35 */
- HH (b, c, d, a, 14, S34, 0xfde5380c); /* 36 */
- HH (a, b, c, d, 1, S31, 0xa4beea44); /* 37 */
- HH (d, a, b, c, 4, S32, 0x4bdecfa9); /* 38 */
- HH (c, d, a, b, 7, S33, 0xf6bb4b60); /* 39 */
- HH (b, c, d, a, 10, S34, 0xbebfbc70); /* 40 */
- HH (a, b, c, d, 13, S31, 0x289b7ec6); /* 41 */
- HH (d, a, b, c, 0, S32, 0xeaa127fa); /* 42 */
- HH (c, d, a, b, 3, S33, 0xd4ef3085); /* 43 */
- HH (b, c, d, a, 6, S34, 0x4881d05); /* 44 */
- HH (a, b, c, d, 9, S31, 0xd9d4d039); /* 45 */
- HH (d, a, b, c, 12, S32, 0xe6db99e5); /* 46 */
- HH (c, d, a, b, 15, S33, 0x1fa27cf8); /* 47 */
- HH (b, c, d, a, 2, S34, 0xc4ac5665); /* 48 */
-
- /* Round 4 */
- II (a, b, c, d, 0, S41, 0xf4292244); /* 49 */
- II (d, a, b, c, 7, S42, 0x432aff97); /* 50 */
- II (c, d, a, b, 14, S43, 0xab9423a7); /* 51 */
- II (b, c, d, a, 5, S44, 0xfc93a039); /* 52 */
- II (a, b, c, d, 12, S41, 0x655b59c3); /* 53 */
- II (d, a, b, c, 3, S42, 0x8f0ccc92); /* 54 */
- II (c, d, a, b, 10, S43, 0xffeff47d); /* 55 */
- II (b, c, d, a, 1, S44, 0x85845dd1); /* 56 */
- II (a, b, c, d, 8, S41, 0x6fa87e4f); /* 57 */
- II (d, a, b, c, 15, S42, 0xfe2ce6e0); /* 58 */
- II (c, d, a, b, 6, S43, 0xa3014314); /* 59 */
- II (b, c, d, a, 13, S44, 0x4e0811a1); /* 60 */
- II (a, b, c, d, 4, S41, 0xf7537e82); /* 61 */
- II (d, a, b, c, 11, S42, 0xbd3af235); /* 62 */
- II (c, d, a, b, 2, S43, 0x2ad7d2bb); /* 63 */
- II (b, c, d, a, 9, S44, 0xeb86d391); /* 64 */
-
- A += a; TRUNC32(A);
- B += b; TRUNC32(B);
- C += c; TRUNC32(C);
- D += d; TRUNC32(D);
-
- } while (--blocks);
- ctx->A = A;
- ctx->B = B;
- ctx->C = C;
- ctx->D = D;
-}
-
-
-#ifdef MD5_DEBUG
-static char*
-ctx_dump(MD5_CTX* ctx)
-{
- static char buf[1024];
- sprintf(buf, "{A=%x,B=%x,C=%x,D=%x,%d,%d(%d)}",
- ctx->A, ctx->B, ctx->C, ctx->D,
- ctx->bytes_low, ctx->bytes_high, (ctx->bytes_low&0x3F));
- return buf;
-}
-#endif
-
-
-static void
-MD5Update(MD5_CTX* ctx, const U8* buf, STRLEN len)
-{
- STRLEN blocks;
- STRLEN fill = ctx->bytes_low & 0x3F;
-
-#ifdef MD5_DEBUG
- static int ucount = 0;
- fprintf(stderr,"%5i: Update(%s, %p, %d)\n", ++ucount, ctx_dump(ctx),
- buf, len);
-#endif
-
- ctx->bytes_low += len;
- if (ctx->bytes_low < len) /* wrap around */
- ctx->bytes_high++;
-
- if (fill) {
- STRLEN missing = 64 - fill;
- if (len < missing) {
- Copy(buf, ctx->buffer + fill, len, U8);
- return;
- }
- Copy(buf, ctx->buffer + fill, missing, U8);
- MD5Transform(ctx, ctx->buffer, 1);
- buf += missing;
- len -= missing;
- }
-
- blocks = len >> 6;
- if (blocks)
- MD5Transform(ctx, buf, blocks);
- if ( (len &= 0x3F)) {
- Copy(buf + (blocks << 6), ctx->buffer, len, U8);
- }
-}
-
-
-static void
-MD5Final(U8* digest, MD5_CTX *ctx)
-{
- STRLEN fill = ctx->bytes_low & 0x3F;
- STRLEN padlen = (fill < 56 ? 56 : 120) - fill;
- U32 bits_low, bits_high;
-#ifdef MD5_DEBUG
- fprintf(stderr," Final: %s\n", ctx_dump(ctx));
-#endif
- Copy(PADDING, ctx->buffer + fill, padlen, U8);
- fill += padlen;
-
- bits_low = ctx->bytes_low << 3;
- bits_high = (ctx->bytes_high << 3) | (ctx->bytes_low >> 29);
-#ifdef BYTESWAP
- *(U32*)(ctx->buffer + fill) = BYTESWAP(bits_low); fill += 4;
- *(U32*)(ctx->buffer + fill) = BYTESWAP(bits_high); fill += 4;
-#else
- u2s(bits_low, ctx->buffer + fill); fill += 4;
- u2s(bits_high, ctx->buffer + fill); fill += 4;
-#endif
-
- MD5Transform(ctx, ctx->buffer, fill >> 6);
-#ifdef MD5_DEBUG
- fprintf(stderr," Result: %s\n", ctx_dump(ctx));
-#endif
-
-#ifdef BYTESWAP
- *(U32*)digest = BYTESWAP(ctx->A); digest += 4;
- *(U32*)digest = BYTESWAP(ctx->B); digest += 4;
- *(U32*)digest = BYTESWAP(ctx->C); digest += 4;
- *(U32*)digest = BYTESWAP(ctx->D);
-#else
- u2s(ctx->A, digest);
- u2s(ctx->B, digest+4);
- u2s(ctx->C, digest+8);
- u2s(ctx->D, digest+12);
-#endif
-}
-
-#ifndef INT2PTR
-#define INT2PTR(any,d) (any)(d)
-#endif
-
static MD5_CTX* get_md5_ctx(pTHX_ SV* sv)
{
MAGIC *mg;
@@ -674,7 +302,7 @@ addfile(self, fh)
InputStream fh
PREINIT:
MD5_CTX* context = get_md5_ctx(aTHX_ self);
- STRLEN fill = context->bytes_low & 0x3F;
+ STRLEN fill = (context->count >> 3) & (MD5_BLOCK_LENGTH - 1);
#ifdef USE_HEAP_INSTEAD_OF_STACK
unsigned char* buffer;
#else
diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t b/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
index 60d284756d7..4a454214dd4 100755
--- a/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
+++ b/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
@@ -21,7 +21,7 @@ EOT
# This is the output of: 'md5sum README MD5.xs rfc1321.txt'
$EXPECT = <<EOT;
2f93400875dbb56f36691d5f69f3eba5 README
-f908acbcf6bd32042f282b0deed61264 MD5.xs
+1d2a7c4f7a6180a7f3369d703ffe7cd0 MD5.xs
754b9db19f79dbc4992f7166eb0f37ce rfc1321.txt
EOT
}
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm
index 47aebd60743..9d7e5ed262d 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm
@@ -35,7 +35,8 @@ sub MY::libscan
my $path = shift;
return undef
- if $path =~ /(~|\.bak|_bak)$/ ||
+ if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ ||
+ $path =~ /(~|\.bak|_bak)$/ ||
$path =~ /\..*\.sw(o|p)$/ ||
$path =~ /\B\.svn\b/;
diff --git a/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm b/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm
index a77bb387433..72dbee8c51c 100644
--- a/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm
+++ b/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm
@@ -190,7 +190,7 @@ __END__
=head1 NAME
-NEXT.pm - Provide a pseudo-class NEXT (et al) that allows method redispatch
+NEXT - Provide a pseudo-class NEXT (et al) that allows method redispatch
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm
index 5f93b8860c3..67bca0afb17 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm
@@ -596,6 +596,11 @@ sub pod2text {
}
}
+sub begin_pod {
+ my $self = shift;
+ $$self{EXCLUDE} = 0;
+ $$self{VERBATIM} = 0;
+}
############################################################################
# Module return value and documentation
diff --git a/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm b/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
index 07d956735c2..3f2f98369cf 100644
--- a/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
+++ b/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
@@ -1508,7 +1508,7 @@ C<extract_tagged> returns the complete text up to the point of failure.
If the string is "PARA", C<extract_tagged> returns only the first paragraph
after the tag (up to the first line that is either empty or contains
only whitespace characters).
-If the string is "", the the default behaviour (i.e. failure) is reinstated.
+If the string is "", the default behaviour (i.e. failure) is reinstated.
For example, suppose the start tag "/para" introduces a paragraph, which then
continues until the next "/endpara" tag or until another "/para" tag is
diff --git a/gnu/usr.bin/perl/cpan/autodie/t/truncate.t b/gnu/usr.bin/perl/cpan/autodie/t/truncate.t
index 2472139a1a0..df6270e6f45 100755
--- a/gnu/usr.bin/perl/cpan/autodie/t/truncate.t
+++ b/gnu/usr.bin/perl/cpan/autodie/t/truncate.t
@@ -6,13 +6,12 @@ use File::Temp qw(tempfile);
use IO::Handle;
use File::Spec;
use FindBin qw($Bin);
-use constant TRUNCATE_ME => File::Spec->catfile($Bin,'truncate_me');
-my ($truncate_status, $tmpfh);
+my ($truncate_status, $tmpfh, $tmpfile);
# Some systems have a screwy tempfile. We don't run our tests there.
eval {
- $tmpfh = tempfile();
+ ($tmpfh, $tmpfile) = tempfile();
};
if ($@ or !defined $tmpfh) {
@@ -80,7 +79,7 @@ isa_ok($@, 'autodie::exception', "Truncating unopened file (TRUNCATE_FH)");
# wrong with our tests, or autodie...
{
use autodie qw(open);
- open(TRUNCATE_FH, '+<', TRUNCATE_ME);
+ open(TRUNCATE_FH, '+<', $tmpfile);
}
# Now try truncating the filehandle. This should succeed.
diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
index 72ca9ff1da9..c1e5afcecbc 100644
--- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
+++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
@@ -857,7 +857,9 @@ sub devise_title {
$cut = $i + 1;
$cut++ if ($dirs[$i + 1] && $dirs[$i + 1] eq 'lib');
last;
- }
+ } elsif ($dirs[$i] eq 'lib' && $dirs[$i + 1] && $dirs[0] eq 'ext') {
+ $cut = $i + 1;
+ }
}
if ($cut > 0) {
splice (@dirs, 0, $cut);
diff --git a/gnu/usr.bin/perl/deb.c b/gnu/usr.bin/perl/deb.c
index d16103eb1e7..f2ad660dc86 100644
--- a/gnu/usr.bin/perl/deb.c
+++ b/gnu/usr.bin/perl/deb.c
@@ -236,7 +236,7 @@ Perl_deb_stack_all(pTHX)
PerlIO_printf(Perl_debug_log, "\n");
else {
- /* Find the the current context's stack range by searching
+ /* Find the current context's stack range by searching
* forward for any higher contexts using this stack; failing
* that, it will be equal to the size of the stack for old
* stacks, or PL_stack_sp for the current stack
diff --git a/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm b/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm
index 7c8a72c6690..588c727d4ee 100644
--- a/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm
+++ b/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm
@@ -10,7 +10,7 @@
package Data::Dumper;
BEGIN {
- $VERSION = '2.151'; # Don't forget to set version and release
+ $VERSION = '2.151_01'; # Don't forget to set version and release
} # date in POD below!
#$| = 1;
@@ -56,6 +56,7 @@ $Useperl = 0 unless defined $Useperl;
$Sortkeys = 0 unless defined $Sortkeys;
$Deparse = 0 unless defined $Deparse;
$Sparseseen = 0 unless defined $Sparseseen;
+$Maxrecurse = 1000 unless defined $Maxrecurse;
#
# expects an arrayref of values to be dumped.
@@ -92,6 +93,7 @@ sub new {
'bless' => $Bless, # keyword to use for "bless"
# expdepth => $Expdepth, # cutoff depth for explicit dumping
maxdepth => $Maxdepth, # depth beyond which we give up
+ maxrecurse => $Maxrecurse, # depth beyond which we abort
useperl => $Useperl, # use the pure Perl implementation
sortkeys => $Sortkeys, # flag or filter for sorting hash keys
deparse => $Deparse, # use B::Deparse for coderefs
@@ -350,6 +352,12 @@ sub _dump {
return qq['$val'];
}
+ # avoid recursing infinitely [perl #122111]
+ if ($s->{maxrecurse} > 0
+ and $s->{level} >= $s->{maxrecurse}) {
+ die "Recursion limit of $s->{maxrecurse} exceeded";
+ }
+
# we have a blessed ref
my ($blesspad);
if ($realpack and !$no_bless) {
@@ -680,6 +688,11 @@ sub Maxdepth {
defined($v) ? (($s->{'maxdepth'} = $v), return $s) : $s->{'maxdepth'};
}
+sub Maxrecurse {
+ my($s, $v) = @_;
+ defined($v) ? (($s->{'maxrecurse'} = $v), return $s) : $s->{'maxrecurse'};
+}
+
sub Useperl {
my($s, $v) = @_;
defined($v) ? (($s->{'useperl'} = $v), return $s) : $s->{'useperl'};
@@ -1105,6 +1118,16 @@ no maximum depth.
=item *
+$Data::Dumper::Maxrecurse I<or> $I<OBJ>->Maxrecurse(I<[NEWVAL]>)
+
+Can be set to a positive integer that specifies the depth beyond which
+recursion into a structure will throw an exception. This is intended
+as a security measure to prevent perl running out of stack space when
+dumping an excessively deep structure. Can be set to 0 to remove the
+limit. Default is 1000.
+
+=item *
+
$Data::Dumper::Useperl I<or> $I<OBJ>->Useperl(I<[NEWVAL]>)
Can be set to a boolean value which controls whether the pure Perl
@@ -1400,6 +1423,8 @@ modify it under the same terms as Perl itself.
Version 2.151 (March 7 2014)
+Plus fix for CVS-2014-4330
+
=head1 SEE ALSO
perl(1)
diff --git a/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs b/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs
index 12c4ebd9f63..a7bb124275b 100644
--- a/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs
+++ b/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs
@@ -28,7 +28,8 @@ static I32 DD_dump (pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval,
SV *pad, SV *xpad, SV *apad, SV *sep, SV *pair,
SV *freezer, SV *toaster,
I32 purity, I32 deepcopy, I32 quotekeys, SV *bless,
- I32 maxdepth, SV *sortkeys, int use_sparse_seen_hash, I32 useqq);
+ I32 maxdepth, SV *sortkeys, int use_sparse_seen_hash, I32 useqq,
+ IV maxrecurse);
#ifndef HvNAME_get
#define HvNAME_get HvNAME
@@ -412,7 +413,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
AV *postav, I32 *levelp, I32 indent, SV *pad, SV *xpad,
SV *apad, SV *sep, SV *pair, SV *freezer, SV *toaster, I32 purity,
I32 deepcopy, I32 quotekeys, SV *bless, I32 maxdepth, SV *sortkeys,
- int use_sparse_seen_hash, I32 useqq)
+ int use_sparse_seen_hash, I32 useqq, IV maxrecurse)
{
char tmpbuf[128];
Size_t i;
@@ -589,6 +590,10 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
return 1;
}
+ if (maxrecurse > 0 && *levelp >= maxrecurse) {
+ croak("Recursion limit of %" IVdf " exceeded", maxrecurse);
+ }
+
if (realpack && !no_bless) { /* we have a blessed ref */
STRLEN blesslen;
const char * const blessstr = SvPV(bless, blesslen);
@@ -674,7 +679,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
DD_dump(aTHX_ ival, SvPVX_const(namesv), SvCUR(namesv), retval, seenhv,
postav, levelp, indent, pad, xpad, apad, sep, pair,
freezer, toaster, purity, deepcopy, quotekeys, bless,
- maxdepth, sortkeys, use_sparse_seen_hash, useqq);
+ maxdepth, sortkeys, use_sparse_seen_hash, useqq, maxrecurse);
sv_catpvn(retval, ")}", 2);
} /* plain */
else {
@@ -682,7 +687,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
DD_dump(aTHX_ ival, SvPVX_const(namesv), SvCUR(namesv), retval, seenhv,
postav, levelp, indent, pad, xpad, apad, sep, pair,
freezer, toaster, purity, deepcopy, quotekeys, bless,
- maxdepth, sortkeys, use_sparse_seen_hash, useqq);
+ maxdepth, sortkeys, use_sparse_seen_hash, useqq, maxrecurse);
}
SvREFCNT_dec(namesv);
}
@@ -694,7 +699,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
DD_dump(aTHX_ ival, SvPVX_const(namesv), SvCUR(namesv), retval, seenhv,
postav, levelp, indent, pad, xpad, apad, sep, pair,
freezer, toaster, purity, deepcopy, quotekeys, bless,
- maxdepth, sortkeys, use_sparse_seen_hash, useqq);
+ maxdepth, sortkeys, use_sparse_seen_hash, useqq, maxrecurse);
SvREFCNT_dec(namesv);
}
else if (realtype == SVt_PVAV) {
@@ -767,7 +772,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
DD_dump(aTHX_ elem, iname, ilen, retval, seenhv, postav,
levelp, indent, pad, xpad, apad, sep, pair,
freezer, toaster, purity, deepcopy, quotekeys, bless,
- maxdepth, sortkeys, use_sparse_seen_hash, useqq);
+ maxdepth, sortkeys, use_sparse_seen_hash, useqq, maxrecurse);
if (ix < ixmax)
sv_catpvn(retval, ",", 1);
}
@@ -970,7 +975,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
DD_dump(aTHX_ hval, SvPVX_const(sname), SvCUR(sname), retval, seenhv,
postav, levelp, indent, pad, xpad, newapad, sep, pair,
freezer, toaster, purity, deepcopy, quotekeys, bless,
- maxdepth, sortkeys, use_sparse_seen_hash, useqq);
+ maxdepth, sortkeys, use_sparse_seen_hash, useqq, maxrecurse);
SvREFCNT_dec(sname);
Safefree(nkey_buffer);
if (indent >= 2)
@@ -1179,7 +1184,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
seenhv, postav, &nlevel, indent, pad, xpad,
newapad, sep, pair, freezer, toaster, purity,
deepcopy, quotekeys, bless, maxdepth,
- sortkeys, use_sparse_seen_hash, useqq);
+ sortkeys, use_sparse_seen_hash, useqq, maxrecurse);
SvREFCNT_dec(e);
}
}
@@ -1269,6 +1274,7 @@ Data_Dumper_Dumpxs(href, ...)
SV *val, *name, *pad, *xpad, *apad, *sep, *pair, *varname;
SV *freezer, *toaster, *bless, *sortkeys;
I32 purity, deepcopy, quotekeys, maxdepth = 0;
+ IV maxrecurse = 1000;
char tmpbuf[1024];
I32 gimme = GIMME;
int use_sparse_seen_hash = 0;
@@ -1355,6 +1361,8 @@ Data_Dumper_Dumpxs(href, ...)
bless = *svp;
if ((svp = hv_fetch(hv, "maxdepth", 8, FALSE)))
maxdepth = SvIV(*svp);
+ if ((svp = hv_fetch(hv, "maxrecurse", 10, FALSE)))
+ maxrecurse = SvIV(*svp);
if ((svp = hv_fetch(hv, "sortkeys", 8, FALSE))) {
sortkeys = *svp;
if (! SvTRUE(sortkeys))
@@ -1434,7 +1442,8 @@ Data_Dumper_Dumpxs(href, ...)
DD_dump(aTHX_ val, SvPVX_const(name), SvCUR(name), valstr, seenhv,
postav, &level, indent, pad, xpad, newapad, sep, pair,
freezer, toaster, purity, deepcopy, quotekeys,
- bless, maxdepth, sortkeys, use_sparse_seen_hash, useqq);
+ bless, maxdepth, sortkeys, use_sparse_seen_hash, useqq,
+ maxrecurse);
SPAGAIN;
if (indent >= 2 && !terse)
diff --git a/gnu/usr.bin/perl/dist/Data-Dumper/t/recurse.t b/gnu/usr.bin/perl/dist/Data-Dumper/t/recurse.t
new file mode 100644
index 00000000000..275a89d2362
--- /dev/null
+++ b/gnu/usr.bin/perl/dist/Data-Dumper/t/recurse.t
@@ -0,0 +1,45 @@
+#!perl
+
+# Test the Maxrecurse option
+
+use strict;
+use Test::More tests => 32;
+use Data::Dumper;
+
+SKIP: {
+ skip "no XS available", 16
+ if $Data::Dumper::Useperl;
+ local $Data::Dumper::Useperl = 1;
+ test_recursion();
+}
+
+test_recursion();
+
+sub test_recursion {
+ my $pp = $Data::Dumper::Useperl ? "pure perl" : "XS";
+ $Data::Dumper::Purity = 1; # make sure this has no effect
+ $Data::Dumper::Indent = 0;
+ $Data::Dumper::Maxrecurse = 1;
+ is(eval { Dumper([]) }, '$VAR1 = [];', "$pp: maxrecurse 1, []");
+ is(eval { Dumper([[]]) }, undef, "$pp: maxrecurse 1, [[]]");
+ ok($@, "exception thrown");
+ is(eval { Dumper({}) }, '$VAR1 = {};', "$pp: maxrecurse 1, {}");
+ is(eval { Dumper({ a => 1 }) }, q($VAR1 = {'a' => 1};),
+ "$pp: maxrecurse 1, { a => 1 }");
+ is(eval { Dumper({ a => {} }) }, undef, "$pp: maxrecurse 1, { a => {} }");
+ ok($@, "exception thrown");
+ is(eval { Dumper(\1) }, "\$VAR1 = \\1;", "$pp: maxrecurse 1, \\1");
+ is(eval { Dumper(\\1) }, undef, "$pp: maxrecurse 1, \\1");
+ ok($@, "exception thrown");
+ $Data::Dumper::Maxrecurse = 3;
+ is(eval { Dumper(\1) }, "\$VAR1 = \\1;", "$pp: maxrecurse 3, \\1");
+ is(eval { Dumper(\(my $s = {})) }, "\$VAR1 = \\{};", "$pp: maxrecurse 3, \\{}");
+ is(eval { Dumper(\(my $s = { a => [] })) }, "\$VAR1 = \\{'a' => []};",
+ "$pp: maxrecurse 3, \\{ a => [] }");
+ is(eval { Dumper(\(my $s = { a => [{}] })) }, undef,
+ "$pp: maxrecurse 3, \\{ a => [{}] }");
+ ok($@, "exception thrown");
+ $Data::Dumper::Maxrecurse = 0;
+ is(eval { Dumper([[[[[]]]]]) }, q($VAR1 = [[[[[]]]]];),
+ "$pp: check Maxrecurse doesn't set limit to 0 recursion");
+}
diff --git a/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm b/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
index ae384fd5b58..8fb3492090b 100644
--- a/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
+++ b/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
@@ -3,7 +3,6 @@ use strict;
use warnings;
use Exporter;
use File::Spec;
-use lib qw( lib );
use ExtUtils::ParseXS::Constants ();
our $VERSION = '3.24';
diff --git a/gnu/usr.bin/perl/dist/Math-BigInt/lib/Math/BigInt.pm b/gnu/usr.bin/perl/dist/Math-BigInt/lib/Math/BigInt.pm
index eff27b95a97..a2aabc18648 100644
--- a/gnu/usr.bin/perl/dist/Math-BigInt/lib/Math/BigInt.pm
+++ b/gnu/usr.bin/perl/dist/Math-BigInt/lib/Math/BigInt.pm
@@ -2677,11 +2677,12 @@ sub objectify {
next;
}
- # Don't do anything with undefs.
-
- unless (defined($a[$i])) {
- next;
- }
+# # Don't do anything with undefs.
+#
+# unless (defined($a[$i])) {
+# next;
+# }
+ $a[$i] //= 0;
# Perl scalars are fed to the appropriate constructor.
diff --git a/gnu/usr.bin/perl/dist/threads-shared/t/stress.t b/gnu/usr.bin/perl/dist/threads-shared/t/stress.t
index 1dd95e39595..e3c1441288e 100755
--- a/gnu/usr.bin/perl/dist/threads-shared/t/stress.t
+++ b/gnu/usr.bin/perl/dist/threads-shared/t/stress.t
@@ -83,7 +83,7 @@ use threads::shared;
print "# Looping for $busycount iterations should take about 0.025s\n";
}
- my $TIMEOUT = 60;
+ my $TIMEOUT = 600;
my $mutex = 1;
share($mutex);
diff --git a/gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL b/gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL
index a8adbf01218..a48c039fa88 100644
--- a/gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL
+++ b/gnu/usr.bin/perl/ext/NDBM_File/Makefile.PL
@@ -1,7 +1,7 @@
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'NDBM_File',
- LIBS => ["-L/usr/local/lib -lndbm", "-ldbm -lucb"],
+ #LIBS => ["-L/usr/local/lib -lndbm", "-ldbm -lucb"],
XSPROTOARG => '-noprototypes', # XXX remove later?
VERSION_FROM => 'NDBM_File.pm',
INC => ($^O eq "MacOS" ? "-i ::::db:include" : "")
diff --git a/gnu/usr.bin/perl/ext/POSIX/POSIX.xs b/gnu/usr.bin/perl/ext/POSIX/POSIX.xs
index de0300cbfa3..307d5bf5368 100644
--- a/gnu/usr.bin/perl/ext/POSIX/POSIX.xs
+++ b/gnu/usr.bin/perl/ext/POSIX/POSIX.xs
@@ -309,14 +309,22 @@ const struct lconv_offset lconv_strings[] = {
};
const struct lconv_offset lconv_integers[] = {
- {"int_frac_digits", offsetof(struct lconv, int_frac_digits)},
- {"frac_digits", offsetof(struct lconv, frac_digits)},
- {"p_cs_precedes", offsetof(struct lconv, p_cs_precedes)},
- {"p_sep_by_space", offsetof(struct lconv, p_sep_by_space)},
- {"n_cs_precedes", offsetof(struct lconv, n_cs_precedes)},
- {"n_sep_by_space", offsetof(struct lconv, n_sep_by_space)},
- {"p_sign_posn", offsetof(struct lconv, p_sign_posn)},
- {"n_sign_posn", offsetof(struct lconv, n_sign_posn)},
+ {"int_frac_digits", offsetof(struct lconv, int_frac_digits)},
+ {"frac_digits", offsetof(struct lconv, frac_digits)},
+ {"p_cs_precedes", offsetof(struct lconv, p_cs_precedes)},
+ {"p_sep_by_space", offsetof(struct lconv, p_sep_by_space)},
+ {"n_cs_precedes", offsetof(struct lconv, n_cs_precedes)},
+ {"n_sep_by_space", offsetof(struct lconv, n_sep_by_space)},
+ {"p_sign_posn", offsetof(struct lconv, p_sign_posn)},
+ {"n_sign_posn", offsetof(struct lconv, n_sign_posn)},
+#ifdef HAS_LC_MONETARY_2008
+ {"int_p_cs_precedes", offsetof(struct lconv, int_p_cs_precedes)},
+ {"int_p_sep_by_space", offsetof(struct lconv, int_p_sep_by_space)},
+ {"int_n_cs_precedes", offsetof(struct lconv, int_n_cs_precedes)},
+ {"int_n_sep_by_space", offsetof(struct lconv, int_n_sep_by_space)},
+ {"int_p_sign_posn", offsetof(struct lconv, int_p_sign_posn)},
+ {"int_n_sign_posn", offsetof(struct lconv, int_n_sign_posn)},
+#endif
{NULL, 0}
};
diff --git a/gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod b/gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod
index 94a5f9dcd97..f72beb6aa5b 100644
--- a/gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod
+++ b/gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod
@@ -848,6 +848,12 @@ Here is how to query the database for the B<de> (Deutsch or German) locale.
n_sep_by_space
p_sign_posn
n_sign_posn
+ int_p_cs_precedes
+ int_p_sep_by_space
+ int_n_cs_precedes
+ int_n_sep_by_space
+ int_p_sign_posn
+ int_n_sign_posn
))
{
printf qq(%s: "%s",\n),
diff --git a/gnu/usr.bin/perl/ext/POSIX/t/posix.t b/gnu/usr.bin/perl/ext/POSIX/t/posix.t
index c2e4abe736e..cd46485d9bf 100644
--- a/gnu/usr.bin/perl/ext/POSIX/t/posix.t
+++ b/gnu/usr.bin/perl/ext/POSIX/t/posix.t
@@ -8,7 +8,7 @@ BEGIN {
}
}
-use Test::More tests => 109;
+use Test::More tests => 115;
use POSIX qw(fcntl_h signal_h limits_h _exit getcwd open read strftime write
errno localeconv dup dup2 lseek access);
@@ -343,8 +343,24 @@ SKIP: {
}
}
- foreach (qw(int_frac_digits frac_digits p_cs_precedes p_sep_by_space
- n_cs_precedes n_sep_by_space p_sign_posn n_sign_posn)) {
+ my @lconv = qw(
+ int_frac_digits frac_digits
+ p_cs_precedes p_sep_by_space
+ n_cs_precedes n_sep_by_space
+ p_sign_posn n_sign_posn
+ );
+
+ SKIP: {
+ skip('No HAS_LC_MONETARY_2008', 6) unless $Config{d_lc_monetary_2008};
+
+ push @lconv, qw(
+ int_p_cs_precedes int_p_sep_by_space
+ int_n_cs_precedes int_n_sep_by_space
+ int_p_sign_posn int_n_sign_posn
+ );
+ }
+
+ foreach (@lconv) {
SKIP: {
skip("localeconv has no result for $_", 1)
unless exists $conv->{$_};
diff --git a/gnu/usr.bin/perl/ext/re/t/reflags.t b/gnu/usr.bin/perl/ext/re/t/reflags.t
index 482b2c8066d..85bbdb45ec1 100644
--- a/gnu/usr.bin/perl/ext/re/t/reflags.t
+++ b/gnu/usr.bin/perl/ext/re/t/reflags.t
@@ -56,7 +56,7 @@ ok 'f r e l p' =~ /f r e l p/,
SKIP: {
if (
!$Config::Config{d_setlocale}
- || $Config::Config{ccflags} =~ /\bD?NO_LOCALE\b/
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
) {
skip "no locale support", 7
}
diff --git a/gnu/usr.bin/perl/git_version.h b/gnu/usr.bin/perl/git_version.h
index 73e89dbecf4..38da47c0542 100644
--- a/gnu/usr.bin/perl/git_version.h
+++ b/gnu/usr.bin/perl/git_version.h
@@ -2,7 +2,7 @@
* WARNING: 'git_version.h' is automatically generated by make_patchnum.pl
* DO NOT EDIT DIRECTLY - edit make_patchnum.pl instead
***************************************************************************/
-#define PERL_GIT_UNCOMMITTED_CHANGES
-#define PERL_PATCHNUM ""
+
#define PERL_GIT_UNPUSHED_COMMITS \
/*leave-this-comment*/
+
diff --git a/gnu/usr.bin/perl/hints/openbsd.sh b/gnu/usr.bin/perl/hints/openbsd.sh
index 2c24c23fae7..d138d6fd088 100644
--- a/gnu/usr.bin/perl/hints/openbsd.sh
+++ b/gnu/usr.bin/perl/hints/openbsd.sh
@@ -8,12 +8,8 @@
# ./Configure -des -Dopenbsd_distribution=defined
#
-# In OpenBSD > 3.7, use perl's malloc [perl #75742]
-case "$osvers" in
-3.[89]*|[4-9]*)
- test "$usemymalloc" || usemymalloc=y
- ;;
-esac
+# OpenBSD has a better malloc than perl...
+test "$usemymalloc" || usemymalloc='n'
# malloc wrap works
case "$usemallocwrap" in
@@ -105,6 +101,13 @@ m88k-3.4)
;;
esac
+# Special per-arch specific ccflags
+case "${ARCH}-${osvers}" in
+ vax-*)
+ ccflags="-DUSE_PERL_ATOF=0 $ccflags"
+ ;;
+esac
+
# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
@@ -147,9 +150,9 @@ case "$openbsd_distribution" in
locincpth='/usr/local/include'
loclibpth='/usr/local/lib'
# Link perl with shared libperl
- if [ "$usedl" = "$define" -a -r shlib_version ]; then
+ if [ "$usedl" = "$define" -a -r $src/shlib_version ]; then
useshrplib=true
- libperl=`. ./shlib_version; echo libperl.so.${major}.${minor}`
+ libperl=`. $src/shlib_version; echo libperl.so.${major}.${minor}`
fi
;;
esac
diff --git a/gnu/usr.bin/perl/installperl b/gnu/usr.bin/perl/installperl
index 5acc06a8216..e0335b7a63c 100644
--- a/gnu/usr.bin/perl/installperl
+++ b/gnu/usr.bin/perl/installperl
@@ -146,7 +146,7 @@ if ((-e "testcompile") && (defined($ENV{'COMPILE'}))) {
}
# Exclude nonxs extensions that are not architecture dependent
-my @nonxs = grep(!/^Errno$/, split(' ', $Config{'nonxs_ext'}));
+my @nonxs = grep(!/^(Errno|IO\/Compress)$/, split(' ', $Config{'nonxs_ext'}));
my @ext_dirs = qw(cpan dist ext);
foreach my $ext_dir (@ext_dirs) {
@@ -192,7 +192,7 @@ my $installprivlib = "$opts{destdir}$Config{installprivlib}";
my $installarchlib = "$opts{destdir}$Config{installarchlib}";
my $installsitelib = "$opts{destdir}$Config{installsitelib}";
my $installsitearch = "$opts{destdir}$Config{installsitearch}";
-my $installman1dir = "$opts{destdir}$Config{installman1dir}";
+my $installman1dir = "none";
my $man1ext = $Config{man1ext};
my $libperl = $Config{libperl};
# Shared library and dynamic loading suffixes.
@@ -246,9 +246,9 @@ else {
}
}
--f 't/rantests' || $Is_W32
- || warn "WARNING: You've never run 'make test' or",
- " some tests failed! (Installing anyway.)\n";
+#-f 't/rantests' || $Is_W32
+# || warn "WARNING: You've never run 'make test' or",
+# " some tests failed! (Installing anyway.)\n";
} #if (!$Is_NetWare)
# This will be used to store the packlist
@@ -274,6 +274,10 @@ if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin) {
$packlist->{"$Config{installbin}/$perldll"} = { type => 'file' };
} # if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin)
+# Get the install command and flags from the environment
+my @installcmd = $ENV{"INSTALL"} || "install";
+push(@installcmd, $ENV{"INSTALL_COPY"} || "-c");
+
# First we install the version-numbered executables.
if ($Is_VMS) {
@@ -297,10 +301,7 @@ if ($Is_VMS) {
}
elsif ($^O ne 'dos') {
if (!$Is_NetWare) {
- safe_unlink("$installbin/$perl_verbase$ver$exe_ext");
- copy("perl$exe_ext", "$installbin/$perl_verbase$ver$exe_ext");
- strip("$installbin/$perl_verbase$ver$exe_ext");
- chmod(0755, "$installbin/$perl_verbase$ver$exe_ext");
+ install("perl$exe_ext", "$installbin/$perl_verbase$ver$exe_ext", "0755");
}
else {
# If installing onto a NetWare server
@@ -372,7 +373,9 @@ elsif ($Is_Cygwin) { # On Cygwin symlink it to CORE to make Makefile happy
)
} else {
# [als] hard-coded 'libperl' name... not good!
- @corefiles = <*.h libperl*.* perl*$Config{lib_ext}>;
+ #@corefiles = <*.h libperl*.* perl*$Config{lib_ext}>;
+ @corefiles = <*.h *.inc perl*$Config{lib_ext}>;
+ push(@corefiles,<libperl*.*>) unless defined($ENV{"NOLIBINSTALL"});
# AIX needs perl.exp installed as well.
push(@corefiles,'perl.exp') if $^O eq 'aix';
@@ -636,6 +639,21 @@ sub copy {
$packlist->{$xto} = { type => 'file' };
}
+sub install {
+ my($from,$to,$mode) = @_;
+
+ my $xto = $to;
+ my $cmd = join(' ', @installcmd);
+ $cmd .= " -m $mode" if $mode;
+ $cmd .= " -s" if $opts{strip};
+ $cmd .= " $from $to";
+ $xto =~ s/^\Q$opts{destdir}\E// if $opts{destdir};
+ print $opts{verbose} ? " install $from $xto\n" : " $xto\n" unless $opts{silent};
+ system($cmd);
+ warn "Couldn't $cmd\n" if $?;
+ $packlist->{$xto} = { type => 'file' };
+}
+
sub installlib {
my $dir = $File::Find::dir;
$dir =~ s!\Alib/?!!;
diff --git a/gnu/usr.bin/perl/lib/AnyDBM_File.pm b/gnu/usr.bin/perl/lib/AnyDBM_File.pm
index 4153af2de2d..3b41a4a100b 100644
--- a/gnu/usr.bin/perl/lib/AnyDBM_File.pm
+++ b/gnu/usr.bin/perl/lib/AnyDBM_File.pm
@@ -22,8 +22,6 @@ __END__
AnyDBM_File - provide framework for multiple DBMs
-NDBM_File, DB_File, GDBM_File, SDBM_File, ODBM_File - various DBM implementations
-
=head1 SYNOPSIS
use AnyDBM_File;
diff --git a/gnu/usr.bin/perl/lib/Config.t b/gnu/usr.bin/perl/lib/Config.t
index ee2eaea99a2..09e45a1751e 100644
--- a/gnu/usr.bin/perl/lib/Config.t
+++ b/gnu/usr.bin/perl/lib/Config.t
@@ -271,8 +271,8 @@ foreach my $lib (qw(applibexp archlibexp privlibexp sitearchexp sitelibexp
}
# So we expect to find it in @INC
- ok (exists $orig_inc{$dir}, "Expect $lib '$dir' to be in \@INC")
- or $failed++;
+ ok (exists $orig_inc{$_}, "Expect $lib '$_' to be in \@INC")
+ or $failed++ for split ':', $dir;
}
}
_diag ('@INC is:', @orig_inc) if $failed;
diff --git a/gnu/usr.bin/perl/lib/Getopt/Std.pm b/gnu/usr.bin/perl/lib/Getopt/Std.pm
index ecb7ebbf971..fb7f2d3d194 100644
--- a/gnu/usr.bin/perl/lib/Getopt/Std.pm
+++ b/gnu/usr.bin/perl/lib/Getopt/Std.pm
@@ -4,7 +4,7 @@ require Exporter;
=head1 NAME
-getopt, getopts - Process single-character switches with switch clustering
+Getopt::Std, getopt, getopts - Process single-character switches with switch clustering
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/lib/locale.t b/gnu/usr.bin/perl/lib/locale.t
index eea92e00e02..5e24e9b257e 100644
--- a/gnu/usr.bin/perl/lib/locale.t
+++ b/gnu/usr.bin/perl/lib/locale.t
@@ -15,7 +15,7 @@ BEGIN {
@INC = '../lib';
unshift @INC, '.';
require Config; import Config;
- if (!$Config{d_setlocale} || $Config{ccflags} =~ /\bD?NO_LOCALE\b/) {
+ if (!$Config{d_setlocale} || $Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/) {
print "1..0\n";
exit;
}
diff --git a/gnu/usr.bin/perl/patchlevel.h b/gnu/usr.bin/perl/patchlevel.h
index 8cbd2868d7e..b8a58f70655 100644
--- a/gnu/usr.bin/perl/patchlevel.h
+++ b/gnu/usr.bin/perl/patchlevel.h
@@ -134,6 +134,7 @@ hunk.
static const char * const local_patches[] = {
NULL
#ifdef PERL_GIT_UNCOMMITTED_CHANGES
+ ,"CVE-2014-4330"
,"uncommitted-changes"
#endif
PERL_GIT_UNPUSHED_COMMITS /* do not remove this line */
diff --git a/gnu/usr.bin/perl/plan9/config_sh.sample b/gnu/usr.bin/perl/plan9/config_sh.sample
index 3eab3d28465..8c1c4109d51 100644
--- a/gnu/usr.bin/perl/plan9/config_sh.sample
+++ b/gnu/usr.bin/perl/plan9/config_sh.sample
@@ -296,6 +296,7 @@ d_isinf='undef'
d_isnan='undef'
d_isnanl='undef'
d_killpg='undef'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='define'
d_libm_lib_version='0'
diff --git a/gnu/usr.bin/perl/pod/perlmodinstall.pod b/gnu/usr.bin/perl/pod/perlmodinstall.pod
index f92620c6d61..9a2634e9ab3 100644
--- a/gnu/usr.bin/perl/pod/perlmodinstall.pod
+++ b/gnu/usr.bin/perl/pod/perlmodinstall.pod
@@ -79,11 +79,11 @@ You can get gzip from ftp://prep.ai.mit.edu/pub/gnu/
Or, you can combine this step with the next to save disk space:
- gzip -dc yourmodule.tar.gz | tar -xof -
+ gzip -dc yourmodule.tar.gz | tar -xf -
B. UNPACK
-Unpack the result with C<tar -xof yourmodule.tar>
+Unpack the result with C<tar -xf yourmodule.tar>
C. BUILD
diff --git a/gnu/usr.bin/perl/pod/perlop.pod b/gnu/usr.bin/perl/pod/perlop.pod
index 888ba533b65..4bcdcbf52f0 100644
--- a/gnu/usr.bin/perl/pod/perlop.pod
+++ b/gnu/usr.bin/perl/pod/perlop.pod
@@ -1568,7 +1568,7 @@ and although they often accept just C<"\012">, they seldom tolerate just
C<"\015">. If you get in the habit of using C<"\n"> for networking,
you may be burned some day.
X<newline> X<line terminator> X<eol> X<end of line>
-X<\n> X<\r> X<\r\n>
+X<\r>
For constructs that do interpolate, variables beginning with "C<$>"
or "C<@>" are interpolated. Subscripted variables such as C<$a[3]> or
diff --git a/gnu/usr.bin/perl/shlib_version b/gnu/usr.bin/perl/shlib_version
index 77913220429..421cd80f021 100644
--- a/gnu/usr.bin/perl/shlib_version
+++ b/gnu/usr.bin/perl/shlib_version
@@ -1,2 +1,2 @@
-major=15
-minor=0
+major=17
+minor=00
diff --git a/gnu/usr.bin/perl/symbian/config.sh b/gnu/usr.bin/perl/symbian/config.sh
index 29482a2c50f..bec4eafdfa2 100644
--- a/gnu/usr.bin/perl/symbian/config.sh
+++ b/gnu/usr.bin/perl/symbian/config.sh
@@ -242,6 +242,7 @@ d_isinf='undef'
d_isnan='undef'
d_isnanl='undef'
d_killpg='undef'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='undef'
d_libm_lib_version='undef'
diff --git a/gnu/usr.bin/perl/t/lib/h2ph.pht b/gnu/usr.bin/perl/t/lib/h2ph.pht
index f068d6dae46..cda8d21051c 100644
--- a/gnu/usr.bin/perl/t/lib/h2ph.pht
+++ b/gnu/usr.bin/perl/t/lib/h2ph.pht
@@ -90,10 +90,6 @@ unless(defined(&_H2PH_H_)) {
}
eval("sub flim () { 0; }") unless defined(&flim);
eval("sub flam () { 1; }") unless defined(&flam);
- eval 'sub blli_in_use {
- my($blli) = @_;
- eval q({ ($blli->{l2_proto}) || ($blli->{l3_proto}); });
- }' unless defined(&blli_in_use);
eval 'sub multiline () {"multilinestring";}' unless defined(&multiline);
}
1;
diff --git a/gnu/usr.bin/perl/t/loc_tools.pl b/gnu/usr.bin/perl/t/loc_tools.pl
index 737e870f8a0..193641d8315 100644
--- a/gnu/usr.bin/perl/t/loc_tools.pl
+++ b/gnu/usr.bin/perl/t/loc_tools.pl
@@ -229,7 +229,8 @@ sub is_locale_utf8 ($) { # Return a boolean as to if core Perl thinks the input
# go through testing all the locales on the platform.
if (CORE::fc(chr utf8::unicode_to_native(0xdf)) ne "ss") {
if ($locale =~ /UTF-?8/i) {
- ok (0, "Verify $locale with UTF-8 in name is a UTF-8 locale");
+ diag("Cannot verify $locale with UTF-8 in name is a UTF-8 locale");
+ #ok (0, "Verify $locale with UTF-8 in name is a UTF-8 locale");
}
}
else {
diff --git a/gnu/usr.bin/perl/t/op/quotemeta.t b/gnu/usr.bin/perl/t/op/quotemeta.t
index 1b8613ac9b9..bb10772c41a 100644
--- a/gnu/usr.bin/perl/t/op/quotemeta.t
+++ b/gnu/usr.bin/perl/t/op/quotemeta.t
@@ -128,10 +128,18 @@ is(length(quotemeta($char)), 1, "quotemeta '\\N{U+D8}' in UTF-8 length");
is(quotemeta($char), "\\$char", "quotemeta '\\N{U+D7}' locale in UTF-8");
is(length(quotemeta($char)), 2, "quotemeta '\\N{U+D7}' locale in UTF-8 length");
- $char = "\N{U+D8}"; # Every non-ASCII Latin1 is quoted in locale.
- utf8::upgrade($char);
- is(quotemeta($char), "\\$char", "quotemeta '\\N{U+D8}' locale in UTF-8");
- is(length(quotemeta($char)), 2, "quotemeta '\\N{U+D8}' locale in UTF-8 length");
+ SKIP: {
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 2
+ }
+ $char = "\N{U+D8}"; # Every non-ASCII Latin1 is quoted in locale.
+ utf8::upgrade($char);
+ is(quotemeta($char), "\\$char", "quotemeta '\\N{U+D8}' locale in UTF-8");
+ is(length(quotemeta($char)), 2, "quotemeta '\\N{U+D8}' locale in UTF-8 length");
+ }
is(quotemeta("\x{263a}"), "\\\x{263a}", "quotemeta locale Unicode quoted");
is(length(quotemeta("\x{263a}")), 2, "quotemeta locale Unicode quoted length");
diff --git a/gnu/usr.bin/perl/t/op/taint.t b/gnu/usr.bin/perl/t/op/taint.t
index 806208af771..f345869bd4a 100644
--- a/gnu/usr.bin/perl/t/op/taint.t
+++ b/gnu/usr.bin/perl/t/op/taint.t
@@ -17,7 +17,7 @@ BEGIN {
use strict;
use Config;
-plan tests => 800;
+plan tests => 816;
$| = 1;
@@ -298,6 +298,12 @@ my $TEST = 'TEST';
is($res, 1, "$desc: res value");
is($one, 'a', "$desc: \$1 value");
+ SKIP: {
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 10 }
SKIP: {
skip 'No locale testing without d_setlocale', 10 if(!$Config{d_setlocale});
@@ -317,6 +323,7 @@ my $TEST = 'TEST';
is_tainted($one, "$desc: \$1 tainted");
is($res, 1, "$desc: res value");
is($one, 'abcd', "$desc: \$1 value");
+ }
$desc = "match /g with pattern tainted via locale";
@@ -341,6 +348,13 @@ my $TEST = 'TEST';
$s = 'abcd';
($res) = $s =~ /$TAINT(.+)/;
$one = $1;
+ SKIP: {
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 12
+ }
isnt_tainted($s, "$desc: s not tainted");
is_tainted($res, "$desc: res tainted");
is_tainted($one, "$desc: \$1 tainted");
@@ -358,9 +372,10 @@ my $TEST = 'TEST';
is($res, 'a', "$desc: res value");
is($res2,'b', "$desc: res2 value");
is($one, 'd', "$desc: \$1 value");
+ }
SKIP: {
- skip 'No locale testing without d_setlocale', 12 if(!$Config{d_setlocale});
+ skip 'No locale testing without d_setlocale', 12 if(!$Config{d_setlocale}) || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/;
$desc = "match with pattern tainted via locale, list cxt";
@@ -479,6 +494,13 @@ my $TEST = 'TEST';
is($one, 'd', "$desc: \$1 value");
$desc = "substitution /ge with pattern tainted";
+ SKIP: {
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 18
+ }
$s = 'abc';
{
@@ -518,9 +540,10 @@ my $TEST = 'TEST';
is($s, 'abcd', "$desc: s value");
is($res, 'xyz', "$desc: res value");
is($one, 'abcd', "$desc: \$1 value");
+ }
SKIP: {
- skip 'No locale testing without d_setlocale', 18 if(!$Config{d_setlocale});
+ skip 'No locale testing without d_setlocale', 18 if(!$Config{d_setlocale} || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/);
$desc = "substitution with pattern tainted via locale";
@@ -661,6 +684,13 @@ my $TEST = 'TEST';
$desc = "use re 'taint': match /g with string tainted";
$s = 'abcd' . $TAINT;
+ SKIP: {
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 10
+ }
$res = $s =~ /(.)/g;
$one = $1;
is_tainted($s, "$desc: s tainted");
@@ -668,6 +698,7 @@ my $TEST = 'TEST';
is_tainted($one, "$desc: \$1 tainted");
is($res, 1, "$desc: res value");
is($one, 'a', "$desc: \$1 value");
+ }
$desc = "use re 'taint': match with string tainted, list cxt";
@@ -685,6 +716,13 @@ my $TEST = 'TEST';
$s = 'abcd' . $TAINT;
($res, $res2) = $s =~ /(.)/g;
$one = $1;
+ SKIP: {
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 12
+ }
is_tainted($s, "$desc: s tainted");
is_tainted($res, "$desc: res tainted");
is_tainted($res2, "$desc: res2 tainted");
@@ -692,6 +730,7 @@ my $TEST = 'TEST';
is($res, 'a', "$desc: res value");
is($res2,'b', "$desc: res2 value");
is($one, 'd', "$desc: \$1 value");
+ }
$desc = "use re 'taint': match with pattern tainted";
@@ -716,7 +755,7 @@ my $TEST = 'TEST';
is($one, 'a', "$desc: \$1 value");
SKIP: {
- skip 'No locale testing without d_setlocale', 10 if(!$Config{d_setlocale});
+ skip 'No locale testing without d_setlocale', 10 if(!$Config{d_setlocale} || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/);
$desc = "use re 'taint': match with pattern tainted via locale";
@@ -777,7 +816,7 @@ my $TEST = 'TEST';
is($one, 'd', "$desc: \$1 value");
SKIP: {
- skip 'No locale testing without d_setlocale', 12 if(!$Config{d_setlocale});
+ skip 'No locale testing without d_setlocale', 12 if(!$Config{d_setlocale} || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/);
$desc = "use re 'taint': match with pattern tainted via locale, list cxt";
@@ -826,6 +865,13 @@ my $TEST = 'TEST';
is_tainted($one, "$desc: \$1 tainted");
is($s, 'xyz', "$desc: s value");
is($res, 1, "$desc: res value");
+ SKIP: {
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 18
+ }
is($one, 'abcd', "$desc: \$1 value");
$desc = "use re 'taint': substitution /g with string tainted";
@@ -851,6 +897,7 @@ my $TEST = 'TEST';
is($s, 'abcd', "$desc: s value");
is($res, 'xyz', "$desc: res value");
is($one, 'abcd', "$desc: \$1 value");
+ }
$desc = "use re 'taint': substitution /e with string tainted";
@@ -938,8 +985,7 @@ my $TEST = 'TEST';
is($one, 'abcd', "$desc: \$1 value");
SKIP: {
- skip 'No locale testing without d_setlocale', 18 if(!$Config{d_setlocale});
-
+ skip 'No locale testing without d_setlocale', 18 if(!$Config{d_setlocale} || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/);
$desc = "use re 'taint': substitution with pattern tainted via locale";
$s = 'abcd';
@@ -2211,7 +2257,13 @@ end
isnt_tainted($b, "regex optimization of single char /[]/i doesn't taint");
}
-{
+SKIP: {
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 4
+ }
# RT 81230: tainted value during FETCH created extra ref to tied obj
package P81230;
@@ -2342,7 +2394,7 @@ pass("no death when TARG of ref is tainted");
}
SKIP: {
- skip 'No locale testing without d_setlocale', 4 if(!$Config{d_setlocale});
+ skip 'No locale testing without d_setlocale', 4 if(!$Config{d_setlocale} || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/);
use feature 'fc';
BEGIN {
diff --git a/gnu/usr.bin/perl/t/porting/customized.dat b/gnu/usr.bin/perl/t/porting/customized.dat
index 37d6bf29da3..3c636c0eda5 100644
--- a/gnu/usr.bin/perl/t/porting/customized.dat
+++ b/gnu/usr.bin/perl/t/porting/customized.dat
@@ -1,4 +1,4 @@
-Digest::MD5 cpan/Digest-MD5/t/files.t bdbe05b705d9da305fedce7a9f4b6ba63250c7cf
+Digest::MD5 cpan/Digest-MD5/t/files.t c1417867017210ce3d199eb9d55d8ef61fdf1a83
Encode cpan/Encode/bin/enc2xs f60036fd3574ec05c9aab7f4db00a828d5dea92d
Encode cpan/Encode/Byte/Makefile.PL 0986e25f981a3bf182a13a0060d28d4efedd87e6
Encode cpan/Encode/CN/Makefile.PL 5507a49d822d0c1d14e967f4595e29e9c873540b
diff --git a/gnu/usr.bin/perl/t/porting/dual-life.t b/gnu/usr.bin/perl/t/porting/dual-life.t
index 8d9f070b0aa..165738ceafb 100644
--- a/gnu/usr.bin/perl/t/porting/dual-life.t
+++ b/gnu/usr.bin/perl/t/porting/dual-life.t
@@ -23,6 +23,12 @@ use File::Spec::Functions;
# Exceptions that are found in dual-life bin dirs but aren't
# installed by default; some occur only during testing:
my $not_installed = qr{^(?:
+ \.\./cpan/Archive-Tar/bin/ptar.*
+ |
+ \.\./cpan/JSON-PP/bin/json_pp
+ |
+ \.\./cpan/IO-Compress/bin/zipdetails
+ |
\.\./cpan/Encode/bin/u(?:cm(?:2table|lint|sort)|nidump)
|
\.\./cpan/Module-(?:Metadata|Build)
diff --git a/gnu/usr.bin/perl/t/re/pat.t b/gnu/usr.bin/perl/t/re/pat.t
index 51838f9b76b..65091400a5b 100755
--- a/gnu/usr.bin/perl/t/re/pat.t
+++ b/gnu/usr.bin/perl/t/re/pat.t
@@ -509,7 +509,13 @@ sub run_tests {
is(qr/\b\v$/, '(?^:\b\v$)', 'qr/\b\v$/');
}
- { # Test that charset modifier work, and are interpolated
+ SKIP: { # Test that charset modifier work, and are interpolated
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 13
+ }
is(qr/\b\v$/, '(?^:\b\v$)', 'Verify no locale, no unicode_strings gives default modifier');
is(qr/(?l:\b\v$)/, '(?^:(?l:\b\v$))', 'Verify infix l modifier compiles');
is(qr/(?u:\b\v$)/, '(?^:(?u:\b\v$))', 'Verify infix u modifier compiles');
diff --git a/gnu/usr.bin/perl/t/uni/fold.t b/gnu/usr.bin/perl/t/uni/fold.t
index 94090e941c0..a0e1551b6b4 100644
--- a/gnu/usr.bin/perl/t/uni/fold.t
+++ b/gnu/usr.bin/perl/t/uni/fold.t
@@ -432,7 +432,7 @@ foreach my $test_ref (@CF) {
utf8::upgrade($utf8);
is(fc($latin1), fc($utf8), "fc() gives the same results for \\x{$_} in Latin-1 and UTF-8 under unicode_strings");
SKIP: {
- skip 'No locale testing without d_setlocale', 2 if(!$Config{d_setlocale});
+ skip 'No locale testing without d_setlocale', 2 if(!$Config{d_setlocale}) || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/;
BEGIN {
if($Config{d_setlocale}) {
require locale; import locale;
@@ -441,7 +441,13 @@ foreach my $test_ref (@CF) {
is(fc($latin1), lc($latin1), "use locale; fc(qq{\\x{$_}}), lc(qq{\\x{$_}}) when qq{\\x{$_}} is in latin-1");
is(fc($utf8), lc($utf8), "use locale; fc(qq{\\x{$_}}), lc(qq{\\x{$_}}) when qq{\\x{$_}} is in latin-1");
}
- {
+ SKIP: {
+ if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+ ) {
+ skip "no locale support", 2
+ }
no feature 'unicode_strings';
is(fc($latin1), lc($latin1), "under nothing, fc() for <256 is the same as lc");
}
diff --git a/gnu/usr.bin/perl/t/uni/overload.t b/gnu/usr.bin/perl/t/uni/overload.t
index bd87b6665c9..dbc8e019090 100644
--- a/gnu/usr.bin/perl/t/uni/overload.t
+++ b/gnu/usr.bin/perl/t/uni/overload.t
@@ -101,6 +101,12 @@ eval {
$have_setlocale++;
}
};
+if (
+ !$Config::Config{d_setlocale}
+ || $Config::Config{ccflags} =~ /\bD?NO_LOCALE(_|\b)/
+) {
+ $have_setlocale = 0;
+}
SKIP: {
if (!$have_setlocale) {
diff --git a/gnu/usr.bin/perl/uconfig.h b/gnu/usr.bin/perl/uconfig.h
index e5cca088d84..4056b4b4fac 100644
--- a/gnu/usr.bin/perl/uconfig.h
+++ b/gnu/usr.bin/perl/uconfig.h
@@ -226,6 +226,12 @@
*/
/*#define HAS_LOCALECONV / **/
+/* HAS_LC_MONETARY_2008:
+ * This symbol, if defined, indicates that the localeconv routine is
+ * available and has the additional members added in POSIX 1003.1-2008.
+ */
+/*#define HAS_LC_MONETARY_2008 / **/
+
/* HAS_LOCKF:
* This symbol, if defined, indicates that the lockf routine is
* available to do file locking.
@@ -4718,6 +4724,6 @@
#endif
/* Generated from:
- * 7557e985de18f71e80f627226b454bc8eaf20477dcf0c45b5b2c51ec792f5c89 config_h.SH
- * dbc8d38ba52ae23e5423418bb3f56b1b6fcdaa82cf71ba0be3463e8221bfe0c0 uconfig.sh
+ * 1efb97c1f4b2c9e6bb17b9172f43cc7f281124904ecca38fa6561d6800432847 config_h.SH
+ * 87143cb3dacf7a54fe1df682d22e85daae58d626055b7bd02efa3d12d3f05c27 uconfig.sh
* ex: set ro: */
diff --git a/gnu/usr.bin/perl/uconfig.sh b/gnu/usr.bin/perl/uconfig.sh
index 9585636dba1..f2460959c29 100644
--- a/gnu/usr.bin/perl/uconfig.sh
+++ b/gnu/usr.bin/perl/uconfig.sh
@@ -235,6 +235,7 @@ d_isinf='undef'
d_isnan='undef'
d_isnanl='undef'
d_killpg='undef'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='undef'
d_libm_lib_version='undef'
diff --git a/gnu/usr.bin/perl/uconfig64.sh b/gnu/usr.bin/perl/uconfig64.sh
index 98c0195e3cf..dfff260fff6 100644
--- a/gnu/usr.bin/perl/uconfig64.sh
+++ b/gnu/usr.bin/perl/uconfig64.sh
@@ -236,6 +236,7 @@ d_isinf='undef'
d_isnan='undef'
d_isnanl='undef'
d_killpg='undef'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='undef'
d_libm_lib_version='undef'
diff --git a/gnu/usr.bin/perl/util.c b/gnu/usr.bin/perl/util.c
index 2bb4a971542..4ae2c64ab9c 100644
--- a/gnu/usr.bin/perl/util.c
+++ b/gnu/usr.bin/perl/util.c
@@ -4408,6 +4408,9 @@ Perl_parse_unicode_opts(pTHX_ const char **popt)
U32
Perl_seed(pTHX)
{
+#if defined(__OpenBSD__)
+ return arc4random();
+#else
dVAR;
/*
* This is really just a quick hack which grabs various garbage
@@ -4484,6 +4487,7 @@ Perl_seed(pTHX)
u += SEED_C5 * (U32)PTR2UV(&when);
#endif
return u;
+#endif
}
void
diff --git a/gnu/usr.bin/perl/utils.lst b/gnu/usr.bin/perl/utils.lst
index d1e5b8f95c6..63e631fa0ba 100644
--- a/gnu/usr.bin/perl/utils.lst
+++ b/gnu/usr.bin/perl/utils.lst
@@ -11,7 +11,6 @@ utils/enc2xs
utils/h2ph
utils/h2xs
utils/instmodsh
-utils/json_pp
utils/libnetcfg
utils/perlbug # link = utils/perlthanks
utils/perldoc
@@ -20,13 +19,8 @@ utils/piconv
utils/pl2pm
utils/pod2html
utils/prove
-utils/ptar
-utils/ptardiff
-utils/ptargrep
-utils/shasum
utils/splain
utils/xsubpp
-utils/zipdetails
x2p/a2p
x2p/find2perl
x2p/s2p # link = x2p/psed
diff --git a/gnu/usr.bin/perl/utils/Makefile.PL b/gnu/usr.bin/perl/utils/Makefile.PL
index 8e461d41ebe..d80cfadaf98 100644
--- a/gnu/usr.bin/perl/utils/Makefile.PL
+++ b/gnu/usr.bin/perl/utils/Makefile.PL
@@ -35,9 +35,9 @@ print $fh <<'EOT';
# Files to be built with variable substitution after miniperl is
# available. Dependencies handled manually below (for now).
-pl = c2ph.PL config_data.PL corelist.PL cpan.PL h2ph.PL h2xs.PL instmodsh.PL json_pp.PL perlbug.PL perldoc.PL perlivp.PL pl2pm.PL prove.PL ptar.PL ptardiff.PL ptargrep.PL shasum.PL splain.PL libnetcfg.PL piconv.PL enc2xs.PL xsubpp.PL pod2html.PL zipdetails.PL
-plextract = c2ph config_data corelist cpan h2ph h2xs instmodsh json_pp perlbug perldoc perlivp pl2pm prove ptar ptardiff ptargrep shasum splain libnetcfg piconv enc2xs xsubpp pod2html zipdetails
-plextractexe = ./c2ph ./config_data ./corelist ./cpan ./h2ph ./h2xs ./json_pp ./instmodsh ./perlbug ./perldoc ./perlivp ./pl2pm ./prove ./ptar ./ptardiff ./ptargrep ./shasum ./splain ./libnetcfg ./piconv ./enc2xs ./xsubpp ./pod2html ./zipdetails
+pl = c2ph.PL config_data.PL corelist.PL cpan.PL h2ph.PL h2xs.PL instmodsh.PL perlbug.PL perldoc.PL perlivp.PL pl2pm.PL prove.PL splain.PL libnetcfg.PL piconv.PL enc2xs.PL xsubpp.PL pod2html.PL
+plextract = c2ph config_data corelist cpan h2ph h2xs instmodsh perlbug perldoc perlivp pl2pm prove splain libnetcfg piconv enc2xs xsubpp pod2html
+plextractexe = ./c2ph ./config_data ./corelist ./cpan ./h2ph ./h2xs ./instmodsh ./perlbug ./perldoc ./perlivp ./pl2pm ./prove ./splain ./libnetcfg ./piconv ./enc2xs ./xsubpp ./pod2html
all: $(plextract)
@@ -58,8 +58,6 @@ h2xs: h2xs.PL ../config.sh
instmodsh: instmodsh.PL ../config.sh
-json_pp: json_pp.PL ../config.sh
-
perlbug: perlbug.PL ../config.sh ../patchlevel.h
perldoc: perldoc.PL ../config.sh
@@ -68,16 +66,8 @@ perlivp: perlivp.PL ../config.sh
prove: prove.PL ../config.sh
-ptar: ptar.PL ../config.sh
-
-ptardiff: ptardiff.PL ../config.sh
-
-ptargrep: ptargrep.PL ../config.sh
-
pl2pm: pl2pm.PL ../config.sh
-shasum: shasum.PL ../config.sh
-
splain: splain.PL ../config.sh ../lib/diagnostics.pm
libnetcfg: libnetcfg.PL ../config.sh
@@ -88,8 +78,6 @@ enc2xs: enc2xs.PL ../config.sh
xsubpp: xsubpp.PL ../config.sh
-zipdetails: zipdetails.PL ../config.sh
-
pod2html: pod2html.PL ../config.sh ../ext/Pod-Html/bin/pod2html
clean:
diff --git a/gnu/usr.bin/perl/utils/h2ph.PL b/gnu/usr.bin/perl/utils/h2ph.PL
index 9a8b14dca8b..15a0fe429e4 100644
--- a/gnu/usr.bin/perl/utils/h2ph.PL
+++ b/gnu/usr.bin/perl/utils/h2ph.PL
@@ -571,7 +571,7 @@ sub next_line
$in =~ s/\?\?</{/g; # | ??<| {|
$in =~ s/\?\?>/}/g; # | ??>| }|
}
- if ($in =~ /^\#ifdef __LANGUAGE_PASCAL__/) {
+ if ($in =~ s/^\#ifdef __LANGUAGE_PASCAL__//) {
# Tru64 disassembler.h evilness: mixed C and Pascal.
while (<IN>) {
last if /^\#endif/;
@@ -579,8 +579,8 @@ sub next_line
$in = "";
next READ;
}
- if ($in =~ /^extern inline / && # Inlined assembler.
- $^O eq 'linux' && $file =~ m!(?:^|/)asm/[^/]+\.h$!) {
+ # Skip inlined functions in headers
+ if ($in =~ s/^(extern|static) (__inline__|inline) .*[^;]\s*$//) {
while (<IN>) {
last if /^}/;
}
diff --git a/gnu/usr.bin/perl/utils/perlbug.PL b/gnu/usr.bin/perl/utils/perlbug.PL
index 885785ae002..093ca96261d 100644
--- a/gnu/usr.bin/perl/utils/perlbug.PL
+++ b/gnu/usr.bin/perl/utils/perlbug.PL
@@ -345,15 +345,14 @@ sub Query {
This program provides an easy way to send a thank-you message back to the
authors and maintainers of perl.
-If you wish to submit a bug report, please run it without the -T flag
-(or run the program perlbug rather than perlthanks)
+If you wish to submit a bug report, please run it without the -T flag.
EOF
} else {
paraprint <<"EOF";
This program provides an easy way to create a message reporting a
bug in the core perl distribution (along with tests or patches)
to the volunteers who maintain perl at $address. To send a thank-you
-note to $thanksaddress instead of a bug report, please run 'perlthanks'.
+note to $thanksaddress instead of a bug report, please use the -T flag.
Please do not use $0 to send test messages, test whether perl
works, or to report bugs in perl modules from CPAN.
@@ -1244,8 +1243,6 @@ S<[ B<-S> ]> S<[ B<-t> ]> S<[ B<-d> ]> S<[ B<-A> ]> S<[ B<-h> ]> S<[ B<-T> ]>
B<perlbug> S<[ B<-v> ]> S<[ B<-r> I<returnaddress> ]>
S<[ B<-A> ]> S<[ B<-ok> | B<-okay> | B<-nok> | B<-nokay> ]>
-B<perlthanks>
-
=head1 DESCRIPTION
@@ -1398,8 +1395,8 @@ description of what's wrong is fine.
=item Can you use C<perlbug> to submit a thank-you note?
-Yes, you can do this by either using the C<-T> option, or by invoking
-the program as C<perlthanks>. Thank-you notes are good. It makes people
+Yes, you can do this by using the C<-T> option.
+Thank-you notes are good. It makes people
smile.
=back
diff --git a/gnu/usr.bin/perl/vutil.c b/gnu/usr.bin/perl/vutil.c
index 1f26140a4c8..02b826fef6a 100644
--- a/gnu/usr.bin/perl/vutil.c
+++ b/gnu/usr.bin/perl/vutil.c
@@ -587,7 +587,11 @@ VER_NV:
/* may get too much accuracy */
char tbuf[64];
+#ifdef __vax__
+ SV *sv = SvNVX(ver) > 10e37 ? newSV(64) : 0;
+#else
SV *sv = SvNVX(ver) > 10e50 ? newSV(64) : 0;
+#endif
char *buf;
#ifdef USE_LOCALE_NUMERIC
const char * const cur_numeric = setlocale(LC_NUMERIC, NULL);
diff --git a/gnu/usr.bin/perl/win32/Makefile b/gnu/usr.bin/perl/win32/Makefile
index 6d8614587bc..93cd7fad543 100644
--- a/gnu/usr.bin/perl/win32/Makefile
+++ b/gnu/usr.bin/perl/win32/Makefile
@@ -1265,6 +1265,7 @@ distclean: realclean
-if exist $(LIBDIR)\MIME rmdir /s /q $(LIBDIR)\MIME
-if exist $(LIBDIR)\Module rmdir /s /q $(LIBDIR)\Module
-if exist $(LIBDIR)\Net\FTP rmdir /s /q $(LIBDIR)\Net\FTP
+ -if exist $(LIBDIR)\OpenBSD rmdir /s /q $(LIBDIR)\OpenBSD
-if exist $(LIBDIR)\Package rmdir /s /q $(LIBDIR)\Package
-if exist $(LIBDIR)\Params rmdir /s /q $(LIBDIR)\Params
-if exist $(LIBDIR)\Parse rmdir /s /q $(LIBDIR)\Parse
diff --git a/gnu/usr.bin/perl/win32/config.ce b/gnu/usr.bin/perl/win32/config.ce
index 5177bebec60..45ef28265f3 100644
--- a/gnu/usr.bin/perl/win32/config.ce
+++ b/gnu/usr.bin/perl/win32/config.ce
@@ -283,6 +283,7 @@ d_isinf='undef'
d_isnan='define'
d_isnanl='undef'
d_killpg='undef'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='define'
d_libm_lib_version='undef'
diff --git a/gnu/usr.bin/perl/win32/config.gc b/gnu/usr.bin/perl/win32/config.gc
index 39cdaefef71..645628a85a3 100644
--- a/gnu/usr.bin/perl/win32/config.gc
+++ b/gnu/usr.bin/perl/win32/config.gc
@@ -283,6 +283,7 @@ d_isinf='undef'
d_isnan='define'
d_isnanl='undef'
d_killpg='define'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='define'
d_libm_lib_version='undef'
diff --git a/gnu/usr.bin/perl/win32/config.vc b/gnu/usr.bin/perl/win32/config.vc
index eef02e14535..7444e027bb0 100644
--- a/gnu/usr.bin/perl/win32/config.vc
+++ b/gnu/usr.bin/perl/win32/config.vc
@@ -283,6 +283,7 @@ d_isinf='undef'
d_isnan='define'
d_isnanl='undef'
d_killpg='define'
+d_lc_monetary_2008='undef'
d_lchown='undef'
d_ldbl_dig='define'
d_libm_lib_version='undef'
diff --git a/gnu/usr.bin/perl/win32/makefile.mk b/gnu/usr.bin/perl/win32/makefile.mk
index 3c9b89c1c3e..788800bbdf3 100644
--- a/gnu/usr.bin/perl/win32/makefile.mk
+++ b/gnu/usr.bin/perl/win32/makefile.mk
@@ -1463,6 +1463,7 @@ distclean: realclean
-if exist $(LIBDIR)\MIME rmdir /s /q $(LIBDIR)\MIME
-if exist $(LIBDIR)\Module rmdir /s /q $(LIBDIR)\Module
-if exist $(LIBDIR)\Net\FTP rmdir /s /q $(LIBDIR)\Net\FTP
+ -if exist $(LIBDIR)\OpenBSD rmdir /s /q $(LIBDIR)\OpenBSD
-if exist $(LIBDIR)\Package rmdir /s /q $(LIBDIR)\Package
-if exist $(LIBDIR)\Params rmdir /s /q $(LIBDIR)\Params
-if exist $(LIBDIR)\Parse rmdir /s /q $(LIBDIR)\Parse