sync with OpenBSD -current

This commit is contained in:
purplerain 2023-12-23 22:21:09 +00:00
parent 933c153850
commit e16447203b
Signed by: purplerain
GPG Key ID: F42C07F07E2E35B7
44 changed files with 2241 additions and 303 deletions

View File

@ -1659,8 +1659,12 @@
./usr/libdata/perl5/pod/perl5321delta.pod
./usr/libdata/perl5/pod/perl5340delta.pod
./usr/libdata/perl5/pod/perl5341delta.pod
./usr/libdata/perl5/pod/perl5342delta.pod
./usr/libdata/perl5/pod/perl5343delta.pod
./usr/libdata/perl5/pod/perl5360delta.pod
./usr/libdata/perl5/pod/perl5361delta.pod
./usr/libdata/perl5/pod/perl5362delta.pod
./usr/libdata/perl5/pod/perl5363delta.pod
./usr/libdata/perl5/pod/perl561delta.pod
./usr/libdata/perl5/pod/perl56delta.pod
./usr/libdata/perl5/pod/perl581delta.pod

View File

@ -249,8 +249,12 @@
./usr/share/man/man1/perl5321delta.1
./usr/share/man/man1/perl5340delta.1
./usr/share/man/man1/perl5341delta.1
./usr/share/man/man1/perl5342delta.1
./usr/share/man/man1/perl5343delta.1
./usr/share/man/man1/perl5360delta.1
./usr/share/man/man1/perl5361delta.1
./usr/share/man/man1/perl5362delta.1
./usr/share/man/man1/perl5363delta.1
./usr/share/man/man1/perl561delta.1
./usr/share/man/man1/perl56delta.1
./usr/share/man/man1/perl581delta.1

View File

@ -35,8 +35,8 @@ api_subversion='0'
api_version='36'
api_versionstring='5.36.0'
ar='ar'
archlib='/usr/lib/perl5/5.36.1/armv4l-linux'
archlibexp='/usr/lib/perl5/5.36.1/armv4l-linux'
archlib='/usr/lib/perl5/5.36.3/armv4l-linux'
archlibexp='/usr/lib/perl5/5.36.3/armv4l-linux'
archname64=''
archname='armv4l-linux'
archobjs=''
@ -55,7 +55,7 @@ castflags='0'
cat='cat'
cc='cc'
cccdlflags='-fpic'
ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.36.1/armv4l-linux/CORE'
ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.36.3/armv4l-linux/CORE'
ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='arm-linux-gcc'
@ -831,7 +831,7 @@ inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
installarchlib='./install_me_here/usr/lib/perl5/5.36.1/armv4l-linux'
installarchlib='./install_me_here/usr/lib/perl5/5.36.3/armv4l-linux'
installbin='./install_me_here/usr/bin'
installhtml1dir=''
installhtml3dir=''
@ -839,13 +839,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
installman3dir='./install_me_here/usr/share/man/man3'
installprefix='./install_me_here/usr'
installprefixexp='./install_me_here/usr'
installprivlib='./install_me_here/usr/lib/perl5/5.36.1'
installprivlib='./install_me_here/usr/lib/perl5/5.36.3'
installscript='./install_me_here/usr/bin'
installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.36.1/armv4l-linux'
installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
installsitebin='./install_me_here/usr/bin'
installsitehtml1dir=''
installsitehtml3dir=''
installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.36.1'
installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.36.3'
installsiteman1dir='./install_me_here/usr/share/man/man1'
installsiteman3dir='./install_me_here/usr/share/man/man3'
installsitescript='./install_me_here/usr/bin'
@ -980,8 +980,8 @@ pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
privlib='/usr/lib/perl5/5.36.1'
privlibexp='/usr/lib/perl5/5.36.1'
privlib='/usr/lib/perl5/5.36.3'
privlibexp='/usr/lib/perl5/5.36.3'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='4'
@ -1046,17 +1046,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
sig_size='68'
signal_t='void'
sitearch='/usr/lib/perl5/site_perl/5.36.1/armv4l-linux'
sitearchexp='/usr/lib/perl5/site_perl/5.36.1/armv4l-linux'
sitearch='/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
sitearchexp='/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
sitelib='/usr/lib/perl5/site_perl/5.36.1'
sitelib='/usr/lib/perl5/site_perl/5.36.3'
sitelib_stem='/usr/lib/perl5/site_perl'
sitelibexp='/usr/lib/perl5/site_perl/5.36.1'
sitelibexp='/usr/lib/perl5/site_perl/5.36.3'
siteman1dir='/usr/share/man/man1'
siteman1direxp='/usr/share/man/man1'
siteman3dir='/usr/share/man/man3'
@ -1097,7 +1097,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
subversion='1'
subversion='3'
sysman='/usr/share/man/man1'
tail=''
tar=''
@ -1188,8 +1188,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
version='5.36.1'
version_patchlevel_string='version 36 subversion 1'
version='5.36.3'
version_patchlevel_string='version 36 subversion 3'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@ -1204,7 +1204,7 @@ config_args=''
config_argc=0
PERL_REVISION=5
PERL_VERSION=36
PERL_SUBVERSION=1
PERL_SUBVERSION=3
PERL_API_REVISION=5
PERL_API_VERSION=36
PERL_API_SUBVERSION=0

View File

@ -35,8 +35,8 @@ api_subversion='0'
api_version='36'
api_versionstring='5.36.0'
ar='ar'
archlib='/usr/lib/perl5/5.36.1/armv4l-linux'
archlibexp='/usr/lib/perl5/5.36.1/armv4l-linux'
archlib='/usr/lib/perl5/5.36.3/armv4l-linux'
archlibexp='/usr/lib/perl5/5.36.3/armv4l-linux'
archname64=''
archname='armv4l-linux'
archobjs=''
@ -54,7 +54,7 @@ castflags='0'
cat='cat'
cc='arm-none-linux-gnueabi-gcc'
cccdlflags='-fpic'
ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.36.1/armv4l-linux/CORE'
ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.36.3/armv4l-linux/CORE'
ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='arm-linux-gcc'
@ -829,7 +829,7 @@ inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
installarchlib='./install_me_here/usr/lib/perl5/5.36.1/armv4l-linux'
installarchlib='./install_me_here/usr/lib/perl5/5.36.3/armv4l-linux'
installbin='./install_me_here/usr/bin'
installhtml1dir=''
installhtml3dir=''
@ -837,13 +837,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
installman3dir='./install_me_here/usr/share/man/man3'
installprefix='./install_me_here/usr'
installprefixexp='./install_me_here/usr'
installprivlib='./install_me_here/usr/lib/perl5/5.36.1'
installprivlib='./install_me_here/usr/lib/perl5/5.36.3'
installscript='./install_me_here/usr/bin'
installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.36.1/armv4l-linux'
installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
installsitebin='./install_me_here/usr/bin'
installsitehtml1dir=''
installsitehtml3dir=''
installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.36.1'
installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.36.3'
installsiteman1dir='./install_me_here/usr/share/man/man1'
installsiteman3dir='./install_me_here/usr/share/man/man3'
installsitescript='./install_me_here/usr/bin'
@ -978,8 +978,8 @@ pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
privlib='/usr/lib/perl5/5.36.1'
privlibexp='/usr/lib/perl5/5.36.1'
privlib='/usr/lib/perl5/5.36.3'
privlibexp='/usr/lib/perl5/5.36.3'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='4'
@ -1044,17 +1044,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
sig_size='68'
signal_t='void'
sitearch='/usr/lib/perl5/site_perl/5.36.1/armv4l-linux'
sitearchexp='/usr/lib/perl5/site_perl/5.36.1/armv4l-linux'
sitearch='/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
sitearchexp='/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
sitelib='/usr/lib/perl5/site_perl/5.36.1'
sitelib='/usr/lib/perl5/site_perl/5.36.3'
sitelib_stem='/usr/lib/perl5/site_perl'
sitelibexp='/usr/lib/perl5/site_perl/5.36.1'
sitelibexp='/usr/lib/perl5/site_perl/5.36.3'
siteman1dir='/usr/share/man/man1'
siteman1direxp='/usr/share/man/man1'
siteman3dir='/usr/share/man/man3'
@ -1095,7 +1095,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
subversion='1'
subversion='3'
sysman='/usr/share/man/man1'
tail=''
tar=''
@ -1186,8 +1186,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
version='5.36.1'
version_patchlevel_string='version 36 subversion 1'
version='5.36.3'
version_patchlevel_string='version 36 subversion 3'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@ -1202,7 +1202,7 @@ config_args=''
config_argc=0
PERL_REVISION=5
PERL_VERSION=36
PERL_SUBVERSION=1
PERL_SUBVERSION=3
PERL_API_REVISION=5
PERL_API_VERSION=36
PERL_API_SUBVERSION=0

View File

@ -683,7 +683,7 @@ The directories set up by Configure fall into three broad categories.
=item Directories for the perl distribution
By default, Configure will use the following directories for 5.36.1.
By default, Configure will use the following directories for 5.36.3.
$version is the full perl version number, including subversion, e.g.
5.12.3, and $archname is a string like sun4-sunos,
determined by Configure. The full definitions of all Configure
@ -2506,7 +2506,7 @@ L<https://www.chiark.greenend.org.uk/~sgtatham/bugs.html>
=head1 Coexistence with earlier versions of perl 5
Perl 5.36.1 is not binary compatible with versions of Perl earlier than.
Perl 5.36.3 is not binary compatible with versions of Perl earlier than.
5.36.0. In other words, you will have to recompile your XS modules.
In general, you can usually safely upgrade from one stable version of Perl
@ -2581,9 +2581,9 @@ won't interfere with another version. (The defaults guarantee this for
libraries after 5.6.0, but not for executables. TODO?) One convenient
way to do this is by using a separate prefix for each version, such as
sh Configure -Dprefix=/opt/perl5.36.1
sh Configure -Dprefix=/opt/perl5.36.3
and adding /opt/perl5.36.1/bin to the shell PATH variable. Such users
and adding /opt/perl5.36.3/bin to the shell PATH variable. Such users
may also wish to add a symbolic link /usr/local/bin/perl so that
scripts can still start with #!/usr/local/bin/perl.
@ -2598,11 +2598,11 @@ yet.
=head2 Upgrading from 5.35.11 or earlier
B<Perl 5.36.1 may not be binary compatible with Perl 5.35.11 or
B<Perl 5.36.3 may not be binary compatible with Perl 5.35.11 or
earlier Perl releases.> Perl modules having binary parts
(meaning that a C compiler is used) will have to be recompiled to be
used with 5.36.1. If you find you do need to rebuild an extension with
5.36.1, you may safely do so without disturbing the older
used with 5.36.3. If you find you do need to rebuild an extension with
5.36.3, you may safely do so without disturbing the older
installations. (See L<"Coexistence with earlier versions of perl 5">
above.)
@ -2635,15 +2635,15 @@ Firstly, the bare minimum to run this script
print("$f\n");
}
in Linux with perl-5.36.1 is as follows (under $Config{prefix}):
in Linux with perl-5.36.3 is as follows (under $Config{prefix}):
./bin/perl
./lib/perl5/5.36.1/strict.pm
./lib/perl5/5.36.1/warnings.pm
./lib/perl5/5.36.1/i686-linux/File/Glob.pm
./lib/perl5/5.36.1/feature.pm
./lib/perl5/5.36.1/XSLoader.pm
./lib/perl5/5.36.1/i686-linux/auto/File/Glob/Glob.so
./lib/perl5/5.36.3/strict.pm
./lib/perl5/5.36.3/warnings.pm
./lib/perl5/5.36.3/i686-linux/File/Glob.pm
./lib/perl5/5.36.3/feature.pm
./lib/perl5/5.36.3/XSLoader.pm
./lib/perl5/5.36.3/i686-linux/auto/File/Glob/Glob.so
Secondly, for perl-5.10.1, the Debian perl-base package contains 591
files, (of which 510 are for lib/unicore) totaling about 3.5MB in its

View File

@ -5879,7 +5879,11 @@ pod/perl5320delta.pod Perl changes in version 5.32.0
pod/perl5321delta.pod Perl changes in version 5.32.1
pod/perl5340delta.pod Perl changes in version 5.34.0
pod/perl5341delta.pod Perl changes in version 5.34.1
pod/perl5342delta.pod Perl changes in version 5.34.2
pod/perl5343delta.pod Perl changes in version 5.34.3
pod/perl5360delta.pod Perl changes in version 5.36.0
pod/perl5361delta.pod Perl changes in version 5.36.1
pod/perl5362delta.pod Perl changes in version 5.36.2
pod/perl561delta.pod Perl changes in version 5.6.1
pod/perl56delta.pod Perl changes in version 5.6
pod/perl581delta.pod Perl changes in version 5.8.1

View File

@ -118,6 +118,6 @@
"url" : "https://github.com/Perl/perl5"
}
},
"version" : "5.036001",
"version" : "5.036003",
"x_serialization_backend" : "JSON::PP version 4.07"
}

View File

@ -105,5 +105,5 @@ resources:
homepage: https://www.perl.org/
license: https://dev.perl.org/licenses/
repository: https://github.com/Perl/perl5
version: '5.036001'
version: '5.036003'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'

View File

@ -614,7 +614,7 @@ esac
$spitshell >>$Makefile <<'!NO!SUBS!'
perltoc_pod_prereqs = extra.pods pod/perl5361delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod
perltoc_pod_prereqs = extra.pods pod/perl5363delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod
generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
generated_headers = uudmap.h bitcount.h mg_data.h
@ -1129,9 +1129,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
$(MINIPERL) pod/perlmodlib.PL -q
pod/perl5361delta.pod: pod/perldelta.pod
$(RMS) pod/perl5361delta.pod
$(LNS) perldelta.pod pod/perl5361delta.pod
pod/perl5363delta.pod: pod/perldelta.pod
$(RMS) pod/perl5363delta.pod
$(LNS) perldelta.pod pod/perl5363delta.pod
extra.pods: $(MINIPERL_EXE)
-@test ! -f extra.pods || rm -f `cat extra.pods`

View File

@ -86,8 +86,12 @@ _quick3p=
perl5321delta 1 pod/perl5321delta.pod \
perl5340delta 1 pod/perl5340delta.pod \
perl5341delta 1 pod/perl5341delta.pod \
perl5342delta 1 pod/perl5342delta.pod \
perl5343delta 1 pod/perl5343delta.pod \
perl5360delta 1 pod/perl5360delta.pod \
perl5361delta 1 pod/perl5361delta.pod \
perl5362delta 1 pod/perl5362delta.pod \
perl5363delta 1 pod/perl5363delta.pod \
perl561delta 1 pod/perl561delta.pod \
perl56delta 1 pod/perl56delta.pod \
perl581delta 1 pod/perl581delta.pod \

View File

@ -50,8 +50,8 @@ api_subversion='0'
api_version='36'
api_versionstring='5.36.0'
ar='ar'
archlib='/opt/perl/lib/5.36.1/x86_64-linux-thread-multi-ld'
archlibexp='/opt/perl/lib/5.36.1/x86_64-linux-thread-multi-ld'
archlib='/opt/perl/lib/5.36.3/x86_64-linux-thread-multi-ld'
archlibexp='/opt/perl/lib/5.36.3/x86_64-linux-thread-multi-ld'
archname64=''
archname='x86_64-linux-thread-multi-ld'
archobjs=''
@ -860,7 +860,7 @@ incpath=''
incpth='/usr/lib64/gcc/x86_64-suse-linux/10/include /usr/local/include /usr/lib64/gcc/x86_64-suse-linux/10/include-fixed /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/include /usr/include'
inews=''
initialinstalllocation='/opt/perl/bin'
installarchlib='/opt/perl/lib/5.36.1/x86_64-linux-thread-multi-ld'
installarchlib='/opt/perl/lib/5.36.3/x86_64-linux-thread-multi-ld'
installbin='/opt/perl/bin'
installhtml1dir=''
installhtml3dir=''
@ -868,13 +868,13 @@ installman1dir='/opt/perl/man/man1'
installman3dir='/opt/perl/man/man3'
installprefix='/opt/perl'
installprefixexp='/opt/perl'
installprivlib='/opt/perl/lib/5.36.1'
installprivlib='/opt/perl/lib/5.36.3'
installscript='/opt/perl/bin'
installsitearch='/opt/perl/lib/site_perl/5.36.1/x86_64-linux-thread-multi-ld'
installsitearch='/opt/perl/lib/site_perl/5.36.3/x86_64-linux-thread-multi-ld'
installsitebin='/opt/perl/bin'
installsitehtml1dir=''
installsitehtml3dir=''
installsitelib='/opt/perl/lib/site_perl/5.36.1'
installsitelib='/opt/perl/lib/site_perl/5.36.3'
installsiteman1dir='/opt/perl/man/man1'
installsiteman3dir='/opt/perl/man/man3'
installsitescript='/opt/perl/bin'
@ -1000,7 +1000,7 @@ perl_static_inline='static __inline__'
perl_thread_local=''
perladmin='yourname@yourhost.yourplace.com'
perllibs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc'
perlpath='/opt/perl/bin/perl5.36.1'
perlpath='/opt/perl/bin/perl5.36.3'
pg='pg'
phostname=''
pidtype='pid_t'
@ -1009,8 +1009,8 @@ pmake=''
pr=''
prefix='/opt/perl'
prefixexp='/opt/perl'
privlib='/opt/perl/lib/5.36.1'
privlibexp='/opt/perl/lib/5.36.1'
privlib='/opt/perl/lib/5.36.3'
privlibexp='/opt/perl/lib/5.36.3'
procselfexe='"/proc/self/exe"'
ptrsize='8'
quadkind='2'
@ -1075,17 +1075,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 0'
sig_size='68'
signal_t='void'
sitearch='/opt/perl/lib/site_perl/5.36.1/x86_64-linux-thread-multi-ld'
sitearchexp='/opt/perl/lib/site_perl/5.36.1/x86_64-linux-thread-multi-ld'
sitearch='/opt/perl/lib/site_perl/5.36.3/x86_64-linux-thread-multi-ld'
sitearchexp='/opt/perl/lib/site_perl/5.36.3/x86_64-linux-thread-multi-ld'
sitebin='/opt/perl/bin'
sitebinexp='/opt/perl/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
sitelib='/opt/perl/lib/site_perl/5.36.1'
sitelib='/opt/perl/lib/site_perl/5.36.3'
sitelib_stem='/opt/perl/lib/site_perl'
sitelibexp='/opt/perl/lib/site_perl/5.36.1'
sitelibexp='/opt/perl/lib/site_perl/5.36.3'
siteman1dir='/opt/perl/man/man1'
siteman1direxp='/opt/perl/man/man1'
siteman3dir='/opt/perl/man/man3'
@ -1113,7 +1113,7 @@ st_dev_sign='1'
st_dev_size='4'
st_ino_sign='1'
st_ino_size='8'
startperl='#!/opt/perl/bin/perl5.36.1'
startperl='#!/opt/perl/bin/perl5.36.3'
startsh='#!/bin/sh'
static_ext=' '
stdchar='char'
@ -1125,7 +1125,7 @@ stdio_ptr='((fp)->_ptr)'
stdio_stream_array=''
strerror_r_proto='REENTRANT_PROTO_B_IBW'
submit=''
subversion='1'
subversion='3'
sysman='/usr/share/man/man1'
sysroot=''
tail=''
@ -1224,8 +1224,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
version='5.36.1'
version_patchlevel_string='version 36 subversion 1'
version='5.36.3'
version_patchlevel_string='version 36 subversion 3'
versiononly='define'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@ -1236,7 +1236,7 @@ zcat=''
zip='zip'
PERL_REVISION=5
PERL_VERSION=36
PERL_SUBVERSION=1
PERL_SUBVERSION=3
PERL_API_REVISION=5
PERL_API_VERSION=36
PERL_API_SUBVERSION=0

View File

@ -1239,8 +1239,8 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
#define ARCHLIB "/opt/perl/lib/5.36.1/x86_64-linux" /**/
#define ARCHLIB_EXP "/opt/perl/lib/5.36.1/x86_64-linux" /**/
#define ARCHLIB "/opt/perl/lib/5.36.3/x86_64-linux" /**/
#define ARCHLIB_EXP "/opt/perl/lib/5.36.3/x86_64-linux" /**/
/* BIN:
* This symbol holds the path of the bin directory where the package will
@ -1293,8 +1293,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
#define PRIVLIB "/opt/perl/lib/5.36.1" /**/
#define PRIVLIB_EXP "/opt/perl/lib/5.36.1" /**/
#define PRIVLIB "/opt/perl/lib/5.36.3" /**/
#define PRIVLIB_EXP "/opt/perl/lib/5.36.3" /**/
/* SITEARCH:
* This symbol contains the name of the private library for this package.
@ -1311,8 +1311,8 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
#define SITEARCH "/opt/perl/lib/site_perl/5.36.1/x86_64-linux" /**/
#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.36.1/x86_64-linux" /**/
#define SITEARCH "/opt/perl/lib/site_perl/5.36.3/x86_64-linux" /**/
#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.36.3/x86_64-linux" /**/
/* SITELIB:
* This symbol contains the name of the private library for this package.
@ -1334,8 +1334,8 @@
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
#define SITELIB "/opt/perl/lib/site_perl/5.36.1" /**/
#define SITELIB_EXP "/opt/perl/lib/site_perl/5.36.1" /**/
#define SITELIB "/opt/perl/lib/site_perl/5.36.3" /**/
#define SITELIB_EXP "/opt/perl/lib/site_perl/5.36.3" /**/
#define SITELIB_STEM "/opt/perl/lib/site_perl" /**/
/* PERL_VENDORARCH:
@ -4109,7 +4109,7 @@
* script to make sure (one hopes) that it runs with perl and not
* some shell.
*/
#define STARTPERL "#!/opt/perl/bin/perl5.36.1" /**/
#define STARTPERL "#!/opt/perl/bin/perl5.36.3" /**/
/* HAS_STDIO_STREAM_ARRAY:
* This symbol, if defined, tells that there is an array

View File

@ -118,6 +118,14 @@ L<Announced on 2022-05-27 by Ricardo Signes|https://www.nntp.perl.org/group/perl
I have nothing to say, and I am saying it.
=head2 v5.36.1 - Louis Kentner, "Piano"
L<Announced on 2023-04-23 by Steve Hay|https://www.nntp.perl.org/group/perl.perl5.porters/2023/04/msg266251.html>
Pianists can be divided into the following three categories: those who
practice a lot and admit it; those who practice a lot but deny it; and
those who do not practice and, therefore, are no pianists.
=head2 v5.36.1-RC3 - Karl Leimer & Walter Gieseking, trans. Frederick C. Rauser, "Rhythmics, Dynamics, Pedal and Other Problems of Piano Playing"
L<Announced on 2023-04-16 by Steve Hay|https://www.nntp.perl.org/group/perl.perl5.porters/2023/04/msg266232.html>

View File

@ -148,7 +148,7 @@ my $passthru_headers = qr/^= (?: over | item | back | cut )/xms;
# version used when generating diffs (acknowledgements, Module::CoreList etc)
# 5.36.0 -> 5.34.0
# 5.36.1 -> 5.36.0
# 5.36.3 -> 5.36.0
my ($major, $minor, $point) = split(/\./, $version);
my $last_version = join('.', $major, ($point == 0 ? ($minor - 2, 0) : ($minor, $point-1)));

View File

@ -403,7 +403,7 @@ died, add a short obituary here.
XXX Generate this with:
perl Porting/acknowledgements.pl v5.36.1..HEAD
perl Porting/acknowledgements.pl v5.36.3..HEAD
=head1 Reporting Bugs

View File

@ -14,7 +14,7 @@ deemed necessary by the Steering Council.
=head2 Perl 5.36
2022-05-27 5.36.0 ✓ Ricardo Signes
2022-04-23 5.36.1 Steve Hay
2023-04-23 5.36.1 ✓ Steve Hay
=head2 Perl 5.34

View File

@ -486,7 +486,7 @@ Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall.
On these systems, it might be the default compilation mode, and there
is currently no guarantee that passing no use64bitall option to the
Configure process will build a 32bit perl. Implementing -Duse32bit*
options would be nice for perl 5.36.1.
options would be nice for perl 5.36.3.
=head2 Profile Perl - am I hot or not?
@ -1183,7 +1183,7 @@ L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-01/msg00339.html>
=head1 Big projects
Tasks that will get your name mentioned in the description of the "Highlights
of 5.36.1"
of 5.36.3"
=head2 make ithreads more robust

View File

@ -22,9 +22,9 @@ The build procedure is completely standard:
Make perl executable and create a symlink for libperl:
chmod a+x /boot/common/bin/perl
cd /boot/common/lib; ln -s perl5/5.36.1/BePC-haiku/CORE/libperl.so .
cd /boot/common/lib; ln -s perl5/5.36.3/BePC-haiku/CORE/libperl.so .
Replace C<5.36.1> with your respective version of Perl.
Replace C<5.36.3> with your respective version of Perl.
=head1 KNOWN PROBLEMS

View File

@ -10,9 +10,9 @@ perlmacosx - Perl under Mac OS X
This document briefly describes Perl under Mac OS X.
curl -O https://www.cpan.org/src/perl-5.36.1.tar.gz
tar -xzf perl-5.36.1.tar.gz
cd perl-5.36.1
curl -O https://www.cpan.org/src/perl-5.36.3.tar.gz
tar -xzf perl-5.36.3.tar.gz
cd perl-5.36.3
./Configure -des -Dprefix=/usr/local/
make
make test
@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X.
=head1 DESCRIPTION
The latest Perl release (5.36.1 as of this writing) builds without changes
The latest Perl release (5.36.3 as of this writing) builds without changes
under all versions of Mac OS X from 10.3 "Panther" onwards.
In order to build your own version of Perl you will need 'make',

View File

@ -619,7 +619,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, see L</"C<PERLLIB_PREFIX>">.
=item Additional Perl modules
unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.36.1/
unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.36.3/
Same remark as above applies. Additionally, if this directory is not
one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you

View File

@ -137,11 +137,11 @@ You may need to set up a foreign symbol for the unpacking utility of
choice. Once you have done so, use a command like the following to
unpack the archive:
vmstar -xvf perl-5^.36^.1.tar
vmstar -xvf perl-5^.36^.3.tar
Then set default to the top-level source directory like so:
set default [.perl-5^.36^.1]
set default [.perl-5^.36^.3]
and proceed with configuration as described in the next section.

View File

@ -1,3 +1,24 @@
5.20231125
- Updated for v5.34.2, v5.36.2, v5.38.1
5.20231120
- Updated for v5.39.5
5.20231025
- Updated for v5.39.4
5.20230920
- Updated for v5.39.3
5.20230820
- Updated for v5.39.2
5.20230720
- Updated for v5.39.1
5.20230520
- Updated for v5.38.0
5.20230423
- Updated for v5.36.1

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ use strict;
use warnings;
use Module::CoreList;
our $VERSION = '5.20230423';
our $VERSION = '5.20231129';
our %utilities;
sub utilities {
@ -1895,6 +1895,90 @@ my %delta = (
removed => {
}
},
5.038000 => {
delta_from => 5.037011,
changed => {
},
removed => {
}
},
5.039001 => {
delta_from => 5.038,
changed => {
},
removed => {
}
},
5.039002 => {
delta_from => 5.039001,
changed => {
},
removed => {
}
},
5.039003 => {
delta_from => 5.039002,
changed => {
},
removed => {
}
},
5.039004 => {
delta_from => 5.039003,
changed => {
},
removed => {
}
},
5.039005 => {
delta_from => 5.039004,
changed => {
},
removed => {
}
},
5.034002 => {
delta_from => 5.034001,
changed => {
},
removed => {
}
},
5.036002 => {
delta_from => 5.036001,
changed => {
},
removed => {
}
},
5.038001 => {
delta_from => 5.038000,
changed => {
},
removed => {
}
},
5.034003 => {
delta_from => 5.034002,
changed => {
},
removed => {
}
},
5.036003 => {
delta_from => 5.036002,
changed => {
},
removed => {
}
},
5.038002 => {
delta_from => 5.038001,
changed => {
},
removed => {
}
},
);
%utilities = Module::CoreList::_undelta(\%delta);

View File

@ -31,11 +31,11 @@
# mkdir -p /opt/perl-catamount
# mkdir -p /opt/perl-catamount/include
# mkdir -p /opt/perl-catamount/lib
# mkdir -p /opt/perl-catamount/lib/perl5/5.36.1
# mkdir -p /opt/perl-catamount/lib/perl5/5.36.3
# mkdir -p /opt/perl-catamount/bin
# cp *.h /opt/perl-catamount/include
# cp libperl.a /opt/perl-catamount/lib
# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.36.1
# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.36.3
# cp miniperl perl run.sh cc.sh /opt/perl-catamount/lib
#
# With the headers and the libperl.a you can embed Perl to your Catamount

View File

@ -118,7 +118,7 @@ package B::Op_private;
our %bits;
our $VERSION = "5.036001";
our $VERSION = "5.036003";
$bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
$bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);

View File

@ -39,7 +39,7 @@ Instead use one of the version comparison macros. See C<L</PERL_VERSION_EQ>>.
#define PERL_REVISION 5 /* age */
#define PERL_VERSION 36 /* epoch */
#define PERL_SUBVERSION 1 /* generation */
#define PERL_SUBVERSION 3 /* generation */
/* The following numbers describe the earliest compatible version of
Perl ("compatibility" here being defined as sufficient binary/API

View File

@ -35,8 +35,8 @@ api_subversion='0'
api_version='36'
api_versionstring='5.36.0'
ar='ar'
archlib='/sys/lib/perl5/5.36.1/386'
archlibexp='/sys/lib/perl5/5.36.1/386'
archlib='/sys/lib/perl5/5.36.3/386'
archlibexp='/sys/lib/perl5/5.36.3/386'
archname64=''
archname='386'
archobjs=''
@ -825,17 +825,17 @@ inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
installarchlib='/sys/lib/perl/5.36.1/386'
installarchlib='/sys/lib/perl/5.36.3/386'
installbin='/usr/bin'
installman1dir='/sys/man/1pub'
installman3dir='/sys/man/2pub'
installprefix='/usr'
installprefixexp='/usr'
installprivlib='/sys/lib/perl/5.36.1'
installprivlib='/sys/lib/perl/5.36.3'
installscript='/usr/bin'
installsitearch='/sys/lib/perl/5.36.1/site_perl/386'
installsitearch='/sys/lib/perl/5.36.3/site_perl/386'
installsitebin='/usr/bin'
installsitelib='/sys/lib/perl/5.36.1/site_perl'
installsitelib='/sys/lib/perl/5.36.3/site_perl'
installstyle='lib/perl5'
installusrbinperl='undef'
installvendorarch=''
@ -961,8 +961,8 @@ pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
privlib='/sys/lib/perl/5.36.1'
privlibexp='/sys/lib/perl/5.36.1'
privlib='/sys/lib/perl/5.36.3'
privlibexp='/sys/lib/perl/5.36.3'
procselfexe=''
prototype='define'
ptrsize='4'
@ -1027,13 +1027,13 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0'
sig_size='50'
signal_t='void'
sitearch='/sys/lib/perl/5.36.1/site_perl/386'
sitearch='/sys/lib/perl/5.36.3/site_perl/386'
sitearchexp='/sys/lib/perl/site_perl/386'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
sitelib='/sys/lib/perl/5.36.1/site_perl'
sitelib_stem='/sys/lib/perl/5.36.1/site_perl'
sitelibexp='/sys/lib/perl/5.36.1/site_perl'
sitelib='/sys/lib/perl/5.36.3/site_perl'
sitelib_stem='/sys/lib/perl/5.36.3/site_perl'
sitelibexp='/sys/lib/perl/5.36.3/site_perl'
siteprefix='/usr'
siteprefixexp='/usr'
sizesize='4'
@ -1068,7 +1068,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/sys/include/ape/string.h'
submit=''
subversion='1'
subversion='3'
sysman='/sys/man/1pub'
tail=''
tar=''
@ -1149,8 +1149,8 @@ vendorlib_stem=''
vendorlibexp=''
vendorprefix=''
vendorprefixexp=''
version='5.36.1'
version_patchlevel_string='version 36 subversion 1'
version='5.36.3'
version_patchlevel_string='version 36 subversion 3'
versiononly='undef'
vi=''
xlibpth=''
@ -1165,7 +1165,7 @@ config_args=''
config_argc=0
PERL_REVISION=5
PERL_VERSION=36
PERL_SUBVERSION=1
PERL_SUBVERSION=3
PERL_API_REVISION=5
PERL_API_VERSION=36
PERL_API_SUBVERSION=0

View File

@ -179,7 +179,11 @@ aux h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp
perlhist Perl history records
perldelta Perl changes since previous version
perl5362delta Perl changes in version 5.36.2
perl5361delta Perl changes in version 5.36.1
perl5360delta Perl changes in version 5.36.0
perl5343delta Perl changes in version 5.34.3
perl5342delta Perl changes in version 5.34.2
perl5341delta Perl changes in version 5.34.1
perl5340delta Perl changes in version 5.34.0
perl5321delta Perl changes in version 5.32.1

View File

@ -0,0 +1,109 @@
=encoding utf8
=head1 NAME
perl5342delta - what is new for perl v5.34.2
=head1 DESCRIPTION
This document describes differences between the 5.34.1 release and the 5.34.2
release.
If you are upgrading from an earlier release such as 5.34.0, first read
L<perl5341delta>, which describes differences between 5.34.0 and 5.34.1.
=head1 Security
This release fixes the following security issues.
=head2 CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property
This vulnerability was reported directly to the Perl security team by
Nathan Mills C<the.true.nathan.mills@gmail.com>.
A crafted regular expression when compiled by perl 5.30.0 through
5.38.0 can cause a one-byte attacker controlled buffer overflow in a
heap allocated buffer.
=head2 CVE-2023-47039 - Perl for Windows binary hijacking vulnerability
This vulnerability was reported to the Intel Product Security Incident
Response Team (PSIRT) by GitHub user ycdxsb
L<https://github.com/ycdxsb/WindowsPrivilegeEscalation>. PSIRT then
reported it to the Perl security team.
Perl for Windows relies on the system path environment variable to
find the shell (C<cmd.exe>). When running an executable which uses
Windows Perl interpreter, Perl attempts to find and execute C<cmd.exe>
within the operating system. However, due to path search order issues,
Perl initially looks for cmd.exe in the current working directory.
An attacker with limited privileges can exploit this behavior by
placing C<cmd.exe> in locations with weak permissions, such as
C<C:\ProgramData>. By doing so, when an administrator attempts to use
this executable from these compromised locations, arbitrary code can
be executed.
=head1 Acknowledgements
Perl 5.34.2 represents approximately 20 months of development since Perl
5.34.1 and contains approximately 3,700 lines of changes across 40 files
from 4 authors.
Excluding auto-generated files, documentation and release tools, there were
approximately 2,800 lines of changes to 9 .pm, .t, .c and .h files.
Perl continues to flourish into its fourth decade thanks to a vibrant
community of users and developers. The following people are known to have
contributed the improvements that became Perl 5.34.2:
Karl Williamson, Paul Evans, Steve Hay, Tony Cook.
The list above is almost certainly incomplete as it is automatically
generated from version control history. In particular, it does not include
the names of the (very much appreciated) contributors who reported issues to
the Perl bug tracker.
Many of the changes included in this version originated in the CPAN modules
included in Perl's core. We're grateful to the entire CPAN community for
helping Perl to flourish.
For a more complete list of all of Perl's historical contributors, please
see the F<AUTHORS> file in the Perl source distribution.
=head1 Reporting Bugs
If you find what you think is a bug, you might check the perl bug database
at L<https://github.com/Perl/perl5/issues>. There may also be information at
L<http://www.perl.org/>, the Perl Home Page.
If you believe you have an unreported bug, please open an issue at
L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a
tiny but sufficient test case.
If the bug you are reporting has security implications which make it
inappropriate to send to a public issue tracker, then see
L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
for details of how to report the issue.
=head1 Give Thanks
If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
you can do so by running the C<perlthanks> program:
perlthanks
This will send an email to the Perl 5 Porters list with your show of thanks.
=head1 SEE ALSO
The F<Changes> file for an explanation of how to view exhaustive details on
what changed.
The F<INSTALL> file for how to build Perl.
The F<README> file for general stuff.
The F<Artistic> and F<Copying> files for copyright information.
=cut

View File

@ -0,0 +1,110 @@
=encoding utf8
=head1 NAME
perl5343delta - what is new for perl v5.34.3
=head1 DESCRIPTION
This document describes differences between the 5.34.1 release and the 5.34.3
release. B<Please note:> This document ignores Perl 5.34.2, a broken release
which existed for a couple of days only.
If you are upgrading from an earlier release such as 5.34.0, first read
L<perl5341delta>, which describes differences between 5.34.0 and 5.34.1.
=head1 Security
This release fixes the following security issues.
=head2 CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property
This vulnerability was reported directly to the Perl security team by
Nathan Mills C<the.true.nathan.mills@gmail.com>.
A crafted regular expression when compiled by perl 5.30.0 through
5.38.0 can cause a one-byte attacker controlled buffer overflow in a
heap allocated buffer.
=head2 CVE-2023-47039 - Perl for Windows binary hijacking vulnerability
This vulnerability was reported to the Intel Product Security Incident
Response Team (PSIRT) by GitHub user ycdxsb
L<https://github.com/ycdxsb/WindowsPrivilegeEscalation>. PSIRT then
reported it to the Perl security team.
Perl for Windows relies on the system path environment variable to
find the shell (C<cmd.exe>). When running an executable which uses
Windows Perl interpreter, Perl attempts to find and execute C<cmd.exe>
within the operating system. However, due to path search order issues,
Perl initially looks for cmd.exe in the current working directory.
An attacker with limited privileges can exploit this behavior by
placing C<cmd.exe> in locations with weak permissions, such as
C<C:\ProgramData>. By doing so, when an administrator attempts to use
this executable from these compromised locations, arbitrary code can
be executed.
=head1 Acknowledgements
Perl 5.34.3 represents approximately 1 month of development since Perl
5.34.1 and contains approximately 3,700 lines of changes across 40 files
from 4 authors.
Excluding auto-generated files, documentation and release tools, there were
approximately 2,800 lines of changes to 9 .pm, .t, .c and .h files.
Perl continues to flourish into its fourth decade thanks to a vibrant
community of users and developers. The following people are known to have
contributed the improvements that became Perl 5.34.3:
Karl Williamson, Paul Evans, Steve Hay, Tony Cook.
The list above is almost certainly incomplete as it is automatically
generated from version control history. In particular, it does not include
the names of the (very much appreciated) contributors who reported issues to
the Perl bug tracker.
Many of the changes included in this version originated in the CPAN modules
included in Perl's core. We're grateful to the entire CPAN community for
helping Perl to flourish.
For a more complete list of all of Perl's historical contributors, please
see the F<AUTHORS> file in the Perl source distribution.
=head1 Reporting Bugs
If you find what you think is a bug, you might check the perl bug database
at L<https://github.com/Perl/perl5/issues>. There may also be information at
L<http://www.perl.org/>, the Perl Home Page.
If you believe you have an unreported bug, please open an issue at
L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a
tiny but sufficient test case.
If the bug you are reporting has security implications which make it
inappropriate to send to a public issue tracker, then see
L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
for details of how to report the issue.
=head1 Give Thanks
If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
you can do so by running the C<perlthanks> program:
perlthanks
This will send an email to the Perl 5 Porters list with your show of thanks.
=head1 SEE ALSO
The F<Changes> file for an explanation of how to view exhaustive details on
what changed.
The F<INSTALL> file for how to build Perl.
The F<README> file for general stuff.
The F<Artistic> and F<Copying> files for copyright information.
=cut

View File

@ -0,0 +1,149 @@
=encoding utf8
=head1 NAME
perl5361delta - what is new for perl v5.36.1
=head1 DESCRIPTION
This document describes differences between the 5.36.0 release and the 5.36.1
release.
If you are upgrading from an earlier release such as 5.35.0, first read
L<perl5360delta>, which describes differences between 5.35.0 and 5.36.0.
=head1 Incompatible Changes
There are no changes intentionally incompatible with 5.36.0. If any exist,
they are bugs, and we request that you submit a report. See
L</Reporting Bugs> below.
=head1 Modules and Pragmata
=head2 Updated Modules and Pragmata
=over 4
=item *
L<Module::CoreList> has been upgraded from version 5.20220520 to 5.20230423.
=back
=head1 Configuration and Compilation
=over 4
=item *
C<Configure> probed for the return type of malloc() and free() by testing
whether declarations for those functions produced a function type mismatch with
the implementation. On Solaris, with a C++ compiler, this check always failed,
since Solaris instead imports malloc() and free() from C<std::> with C<using>
for C++ builds. Since the return types of malloc() and free() are well defined
by the C standard, skip probing for them. C<Configure> command-line arguments
and hints can still override these type in the unlikely case that is needed.
[L<GH #20806|https://github.com/Perl/perl5/issues/20806>]
=back
=head1 Testing
Tests were added and changed to reflect the other additions and changes in this
release.
=head1 Selected Bug Fixes
=over 4
=item *
An eval() as the last statement in a regex code block could trigger an
interpreter panic; e.g.
/(?{ ...; eval {....}; })/
[L<GH #19680|https://github.com/Perl/perl5/issues/19680>]
=item *
An C<eval EXPR> referring to a lexical sub defined in grandparent scope no
longer produces an assertion failures.
[L<GH #19857|https://github.com/Perl/perl5/issues/19857>]
=item *
Writing to a magic variables associated with the selected output handle, C<$^>,
C<$~>, C<$=>, C<$-> and C<$%>, no longer crashes perl if the IO object has been
cleared from the selected output handle.
[L<GH #20733|https://github.com/Perl/perl5/issues/20733>]
=back
=head1 Acknowledgements
Perl 5.36.1 represents approximately 11 months of development since Perl 5.36.0
and contains approximately 5,500 lines of changes across 62 files from 24
authors.
Excluding auto-generated files, documentation and release tools, there were
approximately 1,600 lines of changes to 23 .pm, .t, .c and .h files.
Perl continues to flourish into its fourth decade thanks to a vibrant community
of users and developers. The following people are known to have contributed
the improvements that became Perl 5.36.1:
Andreas König, Bram, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari
Mannsåker, David Mitchell, Elvin Aslanov, Florian Weimer, Graham Knop, Hugo
van der Sanden, Karen Etheridge, Karl Williamson, Leon Timmermans, Matthew
Horsfall, Max Maischein, Neil Bowers, Nicolas R, Renee Baecker, Ricardo Signes,
Richard Leach, Steve Hay, Todd Rinaldo, Tony Cook, Yves Orton.
The list above is almost certainly incomplete as it is automatically generated
from version control history. In particular, it does not include the names of
the (very much appreciated) contributors who reported issues to the Perl bug
tracker.
Many of the changes included in this version originated in the CPAN modules
included in Perl's core. We're grateful to the entire CPAN community for
helping Perl to flourish.
For a more complete list of all of Perl's historical contributors, please see
the F<AUTHORS> file in the Perl source distribution.
=head1 Reporting Bugs
If you find what you think is a bug, you might check the perl bug database at
L<https://github.com/Perl/perl5/issues>. There may also be information at
L<http://www.perl.org/>, the Perl Home Page.
If you believe you have an unreported bug, please open an issue at
L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a
tiny but sufficient test case.
If the bug you are reporting has security implications which make it
inappropriate to send to a public issue tracker, then see
L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to
report the issue.
=head1 Give Thanks
If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you
can do so by running the C<perlthanks> program:
perlthanks
This will send an email to the Perl 5 Porters list with your show of thanks.
=head1 SEE ALSO
The F<Changes> file for an explanation of how to view exhaustive details on
what changed.
The F<INSTALL> file for how to build Perl.
The F<README> file for general stuff.
The F<Artistic> and F<Copying> files for copyright information.
=cut

View File

@ -0,0 +1,109 @@
=encoding utf8
=head1 NAME
perl5362delta - what is new for perl v5.36.2
=head1 DESCRIPTION
This document describes differences between the 5.36.1 release and the 5.36.2
release.
If you are upgrading from an earlier release such as 5.36.0, first read
L<perl5361delta>, which describes differences between 5.36.0 and 5.36.1.
=head1 Security
This release fixes the following security issues.
=head2 CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property
This vulnerability was reported directly to the Perl security team by
Nathan Mills C<the.true.nathan.mills@gmail.com>.
A crafted regular expression when compiled by perl 5.30.0 through
5.38.0 can cause a one-byte attacker controlled buffer overflow in a
heap allocated buffer.
=head2 CVE-2023-47039 - Perl for Windows binary hijacking vulnerability
This vulnerability was reported to the Intel Product Security Incident
Response Team (PSIRT) by GitHub user ycdxsb
L<https://github.com/ycdxsb/WindowsPrivilegeEscalation>. PSIRT then
reported it to the Perl security team.
Perl for Windows relies on the system path environment variable to
find the shell (C<cmd.exe>). When running an executable which uses
Windows Perl interpreter, Perl attempts to find and execute C<cmd.exe>
within the operating system. However, due to path search order issues,
Perl initially looks for cmd.exe in the current working directory.
An attacker with limited privileges can exploit this behavior by
placing C<cmd.exe> in locations with weak permissions, such as
C<C:\ProgramData>. By doing so, when an administrator attempts to use
this executable from these compromised locations, arbitrary code can
be executed.
=head1 Acknowledgements
Perl 5.36.2 represents approximately 1 month of development since Perl
5.36.1 and contains approximately 2,300 lines of changes across 38 files
from 4 authors.
Excluding auto-generated files, documentation and release tools, there were
approximately 1,400 lines of changes to 8 .pm, .t, .c and .h files.
Perl continues to flourish into its fourth decade thanks to a vibrant
community of users and developers. The following people are known to have
contributed the improvements that became Perl 5.36.2:
Karl Williamson, Paul Evans, Steve Hay, Tony Cook.
The list above is almost certainly incomplete as it is automatically
generated from version control history. In particular, it does not include
the names of the (very much appreciated) contributors who reported issues to
the Perl bug tracker.
Many of the changes included in this version originated in the CPAN modules
included in Perl's core. We're grateful to the entire CPAN community for
helping Perl to flourish.
For a more complete list of all of Perl's historical contributors, please
see the F<AUTHORS> file in the Perl source distribution.
=head1 Reporting Bugs
If you find what you think is a bug, you might check the perl bug database
at L<https://github.com/Perl/perl5/issues>. There may also be information at
L<http://www.perl.org/>, the Perl Home Page.
If you believe you have an unreported bug, please open an issue at
L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a
tiny but sufficient test case.
If the bug you are reporting has security implications which make it
inappropriate to send to a public issue tracker, then see
L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
for details of how to report the issue.
=head1 Give Thanks
If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
you can do so by running the C<perlthanks> program:
perlthanks
This will send an email to the Perl 5 Porters list with your show of thanks.
=head1 SEE ALSO
The F<Changes> file for an explanation of how to view exhaustive details on
what changed.
The F<INSTALL> file for how to build Perl.
The F<README> file for general stuff.
The F<Artistic> and F<Copying> files for copyright information.
=cut

View File

@ -2,119 +2,80 @@
=head1 NAME
perldelta - what is new for perl v5.36.1
perldelta - what is new for perl v5.36.3
=head1 DESCRIPTION
This document describes differences between the 5.36.0 release and the 5.36.1
release.
This document describes differences between the 5.36.1 release and the 5.36.3
release. B<Please note:> This document ignores Perl 5.36.2, a broken release
which existed for a couple of days only.
If you are upgrading from an earlier release such as 5.35.0, first read
L<perl5360delta>, which describes differences between 5.35.0 and 5.36.0.
If you are upgrading from an earlier release such as 5.36.0, first read
L<perl5361delta>, which describes differences between 5.36.0 and 5.36.1.
=head1 Incompatible Changes
=head1 Security
There are no changes intentionally incompatible with 5.36.0. If any exist,
they are bugs, and we request that you submit a report. See
L</Reporting Bugs> below.
This release fixes the following security issues.
=head1 Modules and Pragmata
=head2 CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property
=head2 Updated Modules and Pragmata
This vulnerability was reported directly to the Perl security team by
Nathan Mills C<the.true.nathan.mills@gmail.com>.
=over 4
A crafted regular expression when compiled by perl 5.30.0 through
5.38.0 can cause a one-byte attacker controlled buffer overflow in a
heap allocated buffer.
=item *
=head2 CVE-2023-47039 - Perl for Windows binary hijacking vulnerability
L<Module::CoreList> has been upgraded from version 5.20220520 to 5.20230423.
This vulnerability was reported to the Intel Product Security Incident
Response Team (PSIRT) by GitHub user ycdxsb
L<https://github.com/ycdxsb/WindowsPrivilegeEscalation>. PSIRT then
reported it to the Perl security team.
=back
Perl for Windows relies on the system path environment variable to
find the shell (C<cmd.exe>). When running an executable which uses
Windows Perl interpreter, Perl attempts to find and execute C<cmd.exe>
within the operating system. However, due to path search order issues,
Perl initially looks for cmd.exe in the current working directory.
=head1 Configuration and Compilation
=over 4
=item *
C<Configure> probed for the return type of malloc() and free() by testing
whether declarations for those functions produced a function type mismatch with
the implementation. On Solaris, with a C++ compiler, this check always failed,
since Solaris instead imports malloc() and free() from C<std::> with C<using>
for C++ builds. Since the return types of malloc() and free() are well defined
by the C standard, skip probing for them. C<Configure> command-line arguments
and hints can still override these type in the unlikely case that is needed.
[L<GH #20806|https://github.com/Perl/perl5/issues/20806>]
=back
=head1 Testing
Tests were added and changed to reflect the other additions and changes in this
release.
=head1 Selected Bug Fixes
=over 4
=item *
An eval() as the last statement in a regex code block could trigger an
interpreter panic; e.g.
/(?{ ...; eval {....}; })/
[L<GH #19680|https://github.com/Perl/perl5/issues/19680>]
=item *
An C<eval EXPR> referring to a lexical sub defined in grandparent scope no
longer produces an assertion failures.
[L<GH #19857|https://github.com/Perl/perl5/issues/19857>]
=item *
Writing to a magic variables associated with the selected output handle, C<$^>,
C<$~>, C<$=>, C<$-> and C<$%>, no longer crashes perl if the IO object has been
cleared from the selected output handle.
[L<GH #20733|https://github.com/Perl/perl5/issues/20733>]
=back
An attacker with limited privileges can exploit this behavior by
placing C<cmd.exe> in locations with weak permissions, such as
C<C:\ProgramData>. By doing so, when an administrator attempts to use
this executable from these compromised locations, arbitrary code can
be executed.
=head1 Acknowledgements
Perl 5.36.1 represents approximately 11 months of development since Perl 5.36.0
and contains approximately 5,500 lines of changes across 62 files from 24
authors.
Perl 5.36.3 represents approximately 1 month of development since Perl
5.36.1 and contains approximately 2,300 lines of changes across 38 files
from 4 authors.
Excluding auto-generated files, documentation and release tools, there were
approximately 1,600 lines of changes to 23 .pm, .t, .c and .h files.
approximately 1,400 lines of changes to 8 .pm, .t, .c and .h files.
Perl continues to flourish into its fourth decade thanks to a vibrant community
of users and developers. The following people are known to have contributed
the improvements that became Perl 5.36.1:
Perl continues to flourish into its fourth decade thanks to a vibrant
community of users and developers. The following people are known to have
contributed the improvements that became Perl 5.36.3:
Andreas König, Bram, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari
Mannsåker, David Mitchell, Elvin Aslanov, Florian Weimer, Graham Knop, Hugo
van der Sanden, Karen Etheridge, Karl Williamson, Leon Timmermans, Matthew
Horsfall, Max Maischein, Neil Bowers, Nicolas R, Renee Baecker, Ricardo Signes,
Richard Leach, Steve Hay, Todd Rinaldo, Tony Cook, Yves Orton.
Karl Williamson, Paul Evans, Steve Hay, Tony Cook.
The list above is almost certainly incomplete as it is automatically generated
from version control history. In particular, it does not include the names of
the (very much appreciated) contributors who reported issues to the Perl bug
tracker.
The list above is almost certainly incomplete as it is automatically
generated from version control history. In particular, it does not include
the names of the (very much appreciated) contributors who reported issues to
the Perl bug tracker.
Many of the changes included in this version originated in the CPAN modules
included in Perl's core. We're grateful to the entire CPAN community for
included in Perl's core. We're grateful to the entire CPAN community for
helping Perl to flourish.
For a more complete list of all of Perl's historical contributors, please see
the F<AUTHORS> file in the Perl source distribution.
For a more complete list of all of Perl's historical contributors, please
see the F<AUTHORS> file in the Perl source distribution.
=head1 Reporting Bugs
If you find what you think is a bug, you might check the perl bug database at
L<https://github.com/Perl/perl5/issues>. There may also be information at
If you find what you think is a bug, you might check the perl bug database
at L<https://github.com/Perl/perl5/issues>. There may also be information at
L<http://www.perl.org/>, the Perl Home Page.
If you believe you have an unreported bug, please open an issue at
@ -123,13 +84,13 @@ tiny but sufficient test case.
If the bug you are reporting has security implications which make it
inappropriate to send to a public issue tracker, then see
L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to
report the issue.
L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
for details of how to report the issue.
=head1 Give Thanks
If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you
can do so by running the C<perlthanks> program:
If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
you can do so by running the C<perlthanks> program:
perlthanks

View File

@ -35,7 +35,7 @@ Little, Dave Rolsky, Max Maischein, Abigail, Jesse Luehrs, Tony Cook,
Dominic Hargreaves, Aaron Crane, Aristotle Pagaltzis, Matthew Horsfall,
Peter Martini, Sawyer X, Chad 'Exodist' Granum, Renee Bäcker, Eric Herman,
John SJ Anderson, Karen Etheridge, Zak B. Elep, Tom Hukins, Richard Leach,
Neil Bowers and Yves Orton.
Neil Bowers, Yves Orton, Paul Evans, and Graham Knop.
=head2 PUMPKIN?
@ -716,6 +716,8 @@ the strings?).
Steve 5.34.1-RC1 2022-Feb-27
Steve 5.34.1-RC2 2022-Mar-06
Steve 5.34.1 2022-Mar-13
Paul E 5.34.2 2023-Nov-25
Paul E 5.34.3 2023-Nov-29
Ricardo 5.35.0 2021-May-20 The 5.35 development track
Max 5.35.1 2021-Jun-20
@ -738,6 +740,8 @@ the strings?).
Steve 5.36.1-RC2 2023-Apr-11
Steve 5.36.1-RC3 2023-Apr-16
Steve 5.36.1 2023-Apr-23
Paul E 5.36.2 2023-Nov-25
Paul E 5.36.3 2023-Nov-29
Ricardo 5.37.0 2022-May-27 The 5.37 development track
Matthew H 5.37.1 2022-Jun-20
@ -752,6 +756,19 @@ the strings?).
Yves 5.37.10 2023-Mar-20
Steve 5.37.11 2023-Apr-20
Ricardo 5.38.0-RC1 2023-Jun-15 The 5.38 maintenance track
Ricardo 5.38.0-RC2 2023-Jun-23
Ricardo 5.38.0 2023-Jul-02
Paul E 5.38.1 2023-Nov-25
Paul E 5.38.2 2023-Nov-29
Ricardo 5.39.0 2023-Jun-30 The 5.39 development track
Steve 5.39.1 2023-Jul-20
Paul E 5.39.2 2023-Aug-20
Matthew H 5.39.3 2023-Sep-20
Graham K 5.39.4 2023-Oct-25
Ether 5.39.5 2023-Nov-20
=head2 SELECTED RELEASE SIZES
For example the notation "core: 212 29" in the release 1.000 means that
@ -840,6 +857,7 @@ explained below.
5.32.0 14147 127 25562 1255 40869 3098 11334 2734 8407 225
5.34.0 14620 126 28150 1262 42711 3138 11535 2774 8791 228
5.36.0 15300 129 27899 1270 48275 3236 11899 2863 8858 224
5.38.0 15793 139 29070 1270 48250 3219 11950 2863 9129 239
The "core"..."doc" mean the following files from the Perl source code
distribution. The glob notation ** means recursively, (.) means
@ -1204,18 +1222,20 @@ the Perl source distribution for somewhat more selected releases.
vos 12 7 12 7 8 7
win32 1011 47 1001 46 966 45
5.38.0
Configure 604 1
Cross 122 15
h2pl 13 15
hints 358 83
os2 538 70
plan9 322 20
Porting 1640 80
qnx 1 4
utils 606 52
vms 544 12
vos 8 7
win32 982 45
=head2 SELECTED PATCH SIZES

View File

@ -82,6 +82,7 @@ close $F;
chdir($testdir);
END {
chdir($cwd) && rmtree("$cwd/$testdir") if -d "$cwd/$testdir";
unlink "cmd.exe";
}
if (open(my $EIN, "$cwd/win32/${exename}_exe.uu")) {
note "Unpacking $exename.exe";
@ -104,21 +105,20 @@ else {
}
note "Compiling $exename.c";
note "$Config{cc} $Config{ccflags} $exename.c";
if (system("$Config{cc} $Config{ccflags} $minus_o $exename.c >log 2>&1") != 0) {
if (system("$Config{cc} $Config{ccflags} $minus_o $exename.c >log 2>&1") != 0 ||
!-f "$exename.exe") {
note "Could not compile $exename.c, status $?";
note "Where is your C compiler?";
skip_all "can't build test executable";
}
unless (-f "$exename.exe") {
if (open(LOG,'<log'))
{
while(<LOG>) {
note $_;
}
}
else {
warn "Cannot open log (in $testdir):$!";
note "Where is your C compiler?";
if (open(LOG,'<log'))
{
while(<LOG>) {
note $_;
}
}
else {
warn "Cannot open log (in $testdir):$!";
}
skip_all "can't build test executable";
}
}
copy("$plxname.bat","$plxname.cmd");
@ -128,6 +128,12 @@ unless (-x "$testdir/$exename.exe") {
skip_all "can't build test executable";
}
# test we only look for cmd.exe in the standard place
delete $ENV{PERLSHELL};
copy("$testdir/$exename.exe", "$testdir/cmd.exe") or die $!;
copy("$testdir/$exename.exe", "cmd.exe") or die $!;
$ENV{PATH} = qq("$testdir";$ENV{PATH});
open my $T, "$^X -I../lib -w win32/system_tests |"
or die "Can't spawn win32/system_tests: $!";
my $expect;

View File

@ -313,7 +313,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5)
extra.pods : miniperl
@ @extra_pods.com
PERLDELTA_CURRENT = [.pod]perl5361delta.pod
PERLDELTA_CURRENT = [.pod]perl5363delta.pod
$(PERLDELTA_CURRENT) : [.pod]perldelta.pod
Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)

View File

@ -63,7 +63,7 @@ INST_TOP := $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
#INST_VER := \5.36.1
#INST_VER := \5.36.3
#
# Comment this out if you DON'T want your perl installation to have
@ -1624,7 +1624,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
copy ..\pod\perldelta.pod ..\pod\perl5361delta.pod
copy ..\pod\perldelta.pod ..\pod\perl5363delta.pod
$(MINIPERL) -I..\lib $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
$(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@ -1724,7 +1724,7 @@ distclean: realclean
-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-cd $(PODDIR) && del /f *.html *.bat roffitall \
perl5361delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perl5363delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlcn.pod perlcygwin.pod \
perlfreebsd.pod perlhaiku.pod perlhpux.pod perlhurd.pod \
perlintern.pod perlirix.pod perljp.pod perlko.pod perllinux.pod \

View File

@ -37,7 +37,7 @@ INST_TOP = $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
#INST_VER = \5.36.1
#INST_VER = \5.36.3
#
# Comment this out if you DON'T want your perl installation to have
@ -1156,7 +1156,7 @@ utils: $(PERLEXE) ..\utils\Makefile
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
copy ..\pod\perldelta.pod ..\pod\perl5361delta.pod
copy ..\pod\perldelta.pod ..\pod\perl5363delta.pod
cd ..\win32
$(PERLEXE) $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
@ -1257,7 +1257,7 @@ distclean: realclean
-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-cd $(PODDIR) && del /f *.html *.bat roffitall \
perl5361delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perl5363delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlcn.pod perlcygwin.pod \
perlfreebsd.pod perlhaiku.pod perlhpux.pod perlhurd.pod \
perlintern.pod perlirix.pod perljp.pod perlko.pod perllinux.pod \

View File

@ -66,8 +66,12 @@ POD = perl.pod \
perl5321delta.pod \
perl5340delta.pod \
perl5341delta.pod \
perl5342delta.pod \
perl5343delta.pod \
perl5360delta.pod \
perl5361delta.pod \
perl5362delta.pod \
perl5363delta.pod \
perl561delta.pod \
perl56delta.pod \
perl581delta.pod \
@ -232,8 +236,12 @@ MAN = perl.man \
perl5321delta.man \
perl5340delta.man \
perl5341delta.man \
perl5342delta.man \
perl5343delta.man \
perl5360delta.man \
perl5361delta.man \
perl5362delta.man \
perl5363delta.man \
perl561delta.man \
perl56delta.man \
perl581delta.man \
@ -398,8 +406,12 @@ HTML = perl.html \
perl5321delta.html \
perl5340delta.html \
perl5341delta.html \
perl5342delta.html \
perl5343delta.html \
perl5360delta.html \
perl5361delta.html \
perl5362delta.html \
perl5363delta.html \
perl561delta.html \
perl56delta.html \
perl581delta.html \
@ -564,8 +576,12 @@ TEX = perl.tex \
perl5321delta.tex \
perl5340delta.tex \
perl5341delta.tex \
perl5342delta.tex \
perl5343delta.tex \
perl5360delta.tex \
perl5361delta.tex \
perl5362delta.tex \
perl5363delta.tex \
perl561delta.tex \
perl56delta.tex \
perl581delta.tex \

View File

@ -72,7 +72,7 @@
int _CRT_glob = 0;
#endif
#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION==1)
#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION==1)
/* Mingw32-1.1 is missing some prototypes */
START_EXTERN_C
FILE * _wfopen(LPCWSTR wszFileName, LPCWSTR wszMode);
@ -116,7 +116,7 @@ static char* win32_get_xlib(const char *pl,
static BOOL has_shell_metachars(const char *ptr);
static long tokenize(const char *str, char **dest, char ***destv);
static void get_shell(void);
static int get_shell(void);
static char* find_next_space(const char *s);
static int do_spawn2(pTHX_ const char *cmd, int exectype);
static int do_spawn2_handles(pTHX_ const char *cmd, int exectype,
@ -204,9 +204,9 @@ set_silent_invalid_parameter_handler(BOOL newvalue)
static void
my_invalid_parameter_handler(const wchar_t* expression,
const wchar_t* function,
const wchar_t* file,
unsigned int line,
const wchar_t* function,
const wchar_t* file,
unsigned int line,
uintptr_t pReserved)
{
# ifdef _DEBUG
@ -602,7 +602,13 @@ tokenize(const char *str, char **dest, char ***destv)
return items;
}
static void
static const char
cmd_opts[] = "/x/d/c";
static const char
shell_cmd[] = "cmd.exe";
static int
get_shell(void)
{
dTHX;
@ -614,12 +620,53 @@ get_shell(void)
* interactive use (which is what most programs look in COMSPEC
* for).
*/
const char* defaultshell = "cmd.exe /x/d/c";
const char *usershell = PerlEnv_getenv("PERL5SHELL");
w32_perlshell_items = tokenize(usershell ? usershell : defaultshell,
&w32_perlshell_tokens,
&w32_perlshell_vec);
const char *shell = PerlEnv_getenv("PERL5SHELL");
if (shell) {
w32_perlshell_items = tokenize(shell,
&w32_perlshell_tokens,
&w32_perlshell_vec);
}
else {
/* tokenize does some Unix-ish like things like
\\ escaping that don't work well here
*/
char shellbuf[MAX_PATH];
UINT len = GetSystemDirectoryA(shellbuf, sizeof(shellbuf));
if (len == 0) {
translate_to_errno();
return -1;
}
else if (len >= MAX_PATH) {
/* buffer too small */
errno = E2BIG;
return -1;
}
if (shellbuf[len-1] != '\\') {
my_strlcat(shellbuf, "\\", sizeof(shellbuf));
++len;
}
if (len + sizeof(shell_cmd) > sizeof(shellbuf)) {
errno = E2BIG;
return -1;
}
my_strlcat(shellbuf, shell_cmd, sizeof(shellbuf));
len += sizeof(shell_cmd)-1;
Newx(w32_perlshell_vec, 3, char *);
Newx(w32_perlshell_tokens, len + 1 + sizeof(cmd_opts), char);
my_strlcpy(w32_perlshell_tokens, shellbuf, len+1);
my_strlcpy(w32_perlshell_tokens + len +1, cmd_opts,
sizeof(cmd_opts));
w32_perlshell_vec[0] = w32_perlshell_tokens;
w32_perlshell_vec[1] = w32_perlshell_tokens + len + 1;
w32_perlshell_vec[2] = NULL;
w32_perlshell_items = 2;
}
}
return 0;
}
int
@ -637,7 +684,9 @@ Perl_do_aspawn(pTHX_ SV *really, SV **mark, SV **sp)
if (sp <= mark)
return -1;
get_shell();
if (get_shell() < 0)
return -1;
Newx(argv, (sp - mark) + w32_perlshell_items + 2, char*);
if (SvNIOKp(*(mark+1)) && !SvPOKp(*(mark+1))) {
@ -767,7 +816,8 @@ do_spawn2_handles(pTHX_ const char *cmd, int exectype, const int *handles)
if (needToTry) {
char **argv;
int i = -1;
get_shell();
if (get_shell() < 0)
return -1;
Newx(argv, w32_perlshell_items + 2, char*);
while (++i < w32_perlshell_items)
argv[i] = w32_perlshell_vec[i];
@ -2069,14 +2119,14 @@ win32_getenvironmentstrings(void)
}
/* Get the number of bytes required to store the ACP encoded string */
aenvstrings_len = WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS,
aenvstrings_len = WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS,
lpWStr, wenvstrings_len, NULL, 0, NULL, NULL);
lpTmp = lpStr = (char *)win32_calloc(aenvstrings_len, sizeof(char));
if(!lpTmp)
out_of_memory();
/* Convert the string from UTF-16 encoding to ACP encoding */
WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, lpWStr, wenvstrings_len, lpStr,
WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, lpWStr, wenvstrings_len, lpStr,
aenvstrings_len, NULL, NULL);
FreeEnvironmentStringsW(lpWStr);
@ -2437,7 +2487,7 @@ win32_uname(struct utsname *name)
/* Timing related stuff */
int
do_raise(pTHX_ int sig)
do_raise(pTHX_ int sig)
{
if (sig < SIG_SIZE) {
Sighandler_t handler = w32_sighandler[sig];
@ -2473,8 +2523,8 @@ void
sig_terminate(pTHX_ int sig)
{
Perl_warn(aTHX_ "Terminating on signal SIG%s(%d)\n",PL_sig_name[sig], sig);
/* exit() seems to be safe, my_exit() or die() is a problem in ^C
thread
/* exit() seems to be safe, my_exit() or die() is a problem in ^C
thread
*/
exit(sig);
}
@ -2525,7 +2575,7 @@ win32_async_check(pTHX)
/* Above or other stuff may have set a signal flag */
if (PL_sig_pending)
despatch_signals();
return 1;
}
@ -3268,7 +3318,8 @@ win32_pipe(int *pfd, unsigned int size, int mode)
DllExport PerlIO*
win32_popenlist(const char *mode, IV narg, SV **args)
{
get_shell();
if (get_shell() < 0)
return NULL;
return do_popen(mode, NULL, narg, args);
}

View File

@ -1,4 +1,4 @@
/* $OpenBSD: apldart.c,v 1.18 2023/09/25 19:23:34 kettenis Exp $ */
/* $OpenBSD: apldart.c,v 1.19 2023/12/23 18:28:38 kettenis Exp $ */
/*
* Copyright (c) 2021 Mark Kettenis <kettenis@openbsd.org>
*
@ -26,6 +26,8 @@
#include <machine/bus.h>
#include <machine/fdt.h>
#include <uvm/uvm_extern.h>
#include <dev/ofw/openfirm.h>
#include <dev/ofw/ofw_misc.h>
#include <dev/ofw/ofw_power.h>
@ -170,6 +172,8 @@ struct apldart_softc {
struct apldart_stream **sc_as;
struct iommu_device sc_id;
int sc_locked;
int sc_translating;
int sc_do_suspend;
};
@ -300,16 +304,12 @@ apldart_attach(struct device *parent, struct device *self, void *aux)
/* Skip locked DARTs for now. */
if (OF_is_compatible(sc->sc_node, "apple,t8110-dart")) {
config = HREAD4(sc, DART_T8110_PROTECT);
if (config & DART_T8110_PROTECT_TTBR_TCR) {
printf(": locked\n");
return;
}
if (config & DART_T8110_PROTECT_TTBR_TCR)
sc->sc_locked = 1;
} else {
config = HREAD4(sc, DART_T8020_CONFIG);
if (config & DART_T8020_CONFIG_LOCK) {
printf(": locked\n");
return;
}
if (config & DART_T8020_CONFIG_LOCK)
sc->sc_locked = 1;
}
/*
@ -325,17 +325,15 @@ apldart_attach(struct device *parent, struct device *self, void *aux)
for (idx = 0; idx < sc->sc_nttbr; idx++) {
ttbr = HREAD4(sc, DART_TTBR(sc, sid, idx));
if (ttbr & sc->sc_ttbr_valid) {
printf(": translating\n");
return;
}
if (ttbr & sc->sc_ttbr_valid)
sc->sc_translating = 1;
}
}
/*
* We have full control over this DART, so do suspend it.
* If we have full control over this DART, do suspend it.
*/
sc->sc_do_suspend = 1;
sc->sc_do_suspend = !sc->sc_locked && !sc->sc_translating;
/*
* Use bypass mode if supported. This avoids an issue with
@ -344,14 +342,20 @@ apldart_attach(struct device *parent, struct device *self, void *aux)
* current kernel interfaces.
*/
params2 = HREAD4(sc, DART_PARAMS2);
if (params2 & DART_PARAMS2_BYPASS_SUPPORT) {
if ((params2 & DART_PARAMS2_BYPASS_SUPPORT) &&
!sc->sc_locked && !sc->sc_translating) {
for (sid = 0; sid < sc->sc_nsid; sid++)
HWRITE4(sc, DART_TCR(sc, sid), sc->sc_tcr_bypass);
printf(": bypass\n");
return;
}
printf("\n");
if (sc->sc_locked)
printf(": locked\n");
else if (sc->sc_translating)
printf(": translating\n");
else
printf("\n");
/*
* Skip the first page to help catching bugs where a device is
@ -362,16 +366,18 @@ apldart_attach(struct device *parent, struct device *self, void *aux)
sc->sc_dvabase = DART_PAGE_SIZE;
sc->sc_dvaend = 0xffffffff - DART_PAGE_SIZE;
/* Disable translations. */
for (sid = 0; sid < sc->sc_nsid; sid++)
HWRITE4(sc, DART_TCR(sc, sid), 0);
if (!sc->sc_locked && !sc->sc_translating) {
/* Disable translations. */
for (sid = 0; sid < sc->sc_nsid; sid++)
HWRITE4(sc, DART_TCR(sc, sid), 0);
/* Remove page tables. */
for (sid = 0; sid < sc->sc_nsid; sid++) {
for (idx = 0; idx < sc->sc_nttbr; idx++)
HWRITE4(sc, DART_TTBR(sc, sid, idx), 0);
/* Remove page tables. */
for (sid = 0; sid < sc->sc_nsid; sid++) {
for (idx = 0; idx < sc->sc_nttbr; idx++)
HWRITE4(sc, DART_TTBR(sc, sid, idx), 0);
}
sc->sc_flush_tlb(sc, -1);
}
sc->sc_flush_tlb(sc, -1);
if (OF_is_compatible(sc->sc_node, "apple,t8110-dart")) {
HWRITE4(sc, DART_T8110_ERROR, HREAD4(sc, DART_T8110_ERROR));
@ -482,6 +488,90 @@ apldart_activate(struct device *self, int act)
return 0;
}
void
apldart_init_locked_stream(struct apldart_stream *as)
{
struct apldart_softc *sc = as->as_sc;
uint32_t ttbr;
vaddr_t startva, endva, va;
paddr_t pa;
bus_addr_t dva, dvaend;
volatile uint64_t *l1;
int nl1, nl2, ntte;
int idx;
for (idx = 0; idx < sc->sc_nttbr; idx++) {
ttbr = HREAD4(sc, DART_TTBR(sc, as->as_sid, idx));
if ((ttbr & sc->sc_ttbr_valid) == 0)
break;
}
KASSERT(idx > 0);
nl2 = idx * (DART_PAGE_SIZE / sizeof(uint64_t));
ntte = nl2 * (DART_PAGE_SIZE / sizeof(uint64_t));
dvaend = (bus_addr_t)ntte * DART_PAGE_SIZE;
if (dvaend < sc->sc_dvaend)
sc->sc_dvaend = dvaend;
as->as_dvamap = extent_create(sc->sc_dev.dv_xname,
sc->sc_dvabase, sc->sc_dvaend, M_DEVBUF,
NULL, 0, EX_WAITOK | EX_NOCOALESCE);
ntte = howmany(sc->sc_dvaend, DART_PAGE_SIZE);
nl2 = howmany(ntte, DART_PAGE_SIZE / sizeof(uint64_t));
nl1 = howmany(nl2, DART_PAGE_SIZE / sizeof(uint64_t));
as->as_l2 = mallocarray(nl2, sizeof(*as->as_l2),
M_DEVBUF, M_WAITOK | M_ZERO);
l1 = km_alloc(nl1 * DART_PAGE_SIZE, &kv_any, &kp_none, &kd_waitok);
KASSERT(l1);
for (idx = 0; idx < nl1; idx++) {
startva = (vaddr_t)l1 + idx * DART_PAGE_SIZE;
endva = startva + DART_PAGE_SIZE;
ttbr = HREAD4(sc, DART_TTBR(sc, as->as_sid, idx));
pa = (paddr_t)(ttbr & ~sc->sc_ttbr_valid) << DART_TTBR_SHIFT;
for (va = startva; va < endva; va += PAGE_SIZE) {
pmap_kenter_cache(va, pa, PROT_READ | PROT_WRITE,
PMAP_CACHE_CI);
pa += PAGE_SIZE;
}
}
for (idx = 0; idx < nl2; idx++) {
if (l1[idx] & DART_L1_TABLE) {
dva = idx * (DART_PAGE_SIZE / sizeof(uint64_t)) *
DART_PAGE_SIZE;
dvaend = dva + DART_PAGE_SIZE * DART_PAGE_SIZE - 1;
if (dva < sc->sc_dvabase)
dva = sc->sc_dvabase;
if (dvaend > sc->sc_dvaend)
dvaend = sc->sc_dvaend;
extent_alloc_region(as->as_dvamap, dva,
dvaend - dva + 1, EX_CONFLICTOK);
} else {
as->as_l2[idx] = apldart_dmamem_alloc(sc->sc_dmat,
DART_PAGE_SIZE, DART_PAGE_SIZE);
pa = APLDART_DMA_DVA(as->as_l2[idx]);
l1[idx] = (pa >> sc->sc_shift) | DART_L1_TABLE;
}
}
sc->sc_flush_tlb(sc, as->as_sid);
memcpy(&as->as_dmat, sc->sc_dmat, sizeof(*sc->sc_dmat));
as->as_dmat._cookie = as;
as->as_dmat._dmamap_create = apldart_dmamap_create;
as->as_dmat._dmamap_destroy = apldart_dmamap_destroy;
as->as_dmat._dmamap_load = apldart_dmamap_load;
as->as_dmat._dmamap_load_mbuf = apldart_dmamap_load_mbuf;
as->as_dmat._dmamap_load_uio = apldart_dmamap_load_uio;
as->as_dmat._dmamap_load_raw = apldart_dmamap_load_raw;
as->as_dmat._dmamap_unload = apldart_dmamap_unload;
as->as_dmat._flags |= BUS_DMA_COHERENT;
}
struct apldart_stream *
apldart_alloc_stream(struct apldart_softc *sc, int sid)
{
@ -490,16 +580,22 @@ apldart_alloc_stream(struct apldart_softc *sc, int sid)
volatile uint64_t *l1;
int idx, ntte, nl1, nl2;
uint32_t mask;
as = malloc(sizeof(*as), M_DEVBUF, M_WAITOK | M_ZERO);
as->as_sc = sc;
as->as_sid = sid;
mtx_init(&as->as_dvamap_mtx, IPL_HIGH);
if (sc->sc_locked || sc->sc_translating) {
apldart_init_locked_stream(as);
return as;
}
as->as_dvamap = extent_create(sc->sc_dev.dv_xname,
sc->sc_dvabase, sc->sc_dvaend, M_DEVBUF,
NULL, 0, EX_NOCOALESCE);
mtx_init(&as->as_dvamap_mtx, IPL_HIGH);
NULL, 0, EX_WAITOK | EX_NOCOALESCE);
/*
* Build translation tables. We pre-allocate the translation

View File

@ -1,4 +1,4 @@
/* $OpenBSD: rkdrm.c,v 1.17 2023/09/11 04:51:24 jsg Exp $ */
/* $OpenBSD: rkdrm.c,v 1.18 2023/12/23 22:40:42 kettenis Exp $ */
/* $NetBSD: rk_drm.c,v 1.3 2019/12/15 01:00:58 mrg Exp $ */
/*-
* Copyright (c) 2019 Jared D. McNeill <jmcneill@invisible.ca>
@ -345,8 +345,6 @@ rkdrm_doswitch(void *v)
{
struct rasops_info *ri = v;
struct rkdrm_softc *sc = ri->ri_hw;
struct rkdrm_crtc *rkdrm_crtc;
int i, crtc;
rasops_show_screen(ri, sc->switchcookie, 0, NULL, NULL);
drm_fb_helper_restore_fbdev_mode_unlocked(&sc->helper);

View File

@ -1,4 +1,4 @@
/* $OpenBSD: main.c,v 1.145 2023/12/15 10:28:57 kn Exp $ */
/* $OpenBSD: main.c,v 1.146 2023/12/23 23:03:00 kn Exp $ */
/* $NetBSD: main.c,v 1.24 1997/08/18 10:20:26 lukem Exp $ */
/*
@ -615,7 +615,7 @@ main(volatile int argc, char *argv[])
err(1, "pledge");
} else {
#ifndef SMALL
if (!resume) {
if (outfile == NULL) {
if (pledge("stdio rpath wpath cpath dns tty inet proc exec fattr",
NULL) == -1)
err(1, "pledge");