change 32891, sitedir/sitearch in /usr/local
This commit is contained in:
parent
629d7f2808
commit
e1baeeeda2
140
32891.patch
Normal file
140
32891.patch
Normal file
@ -0,0 +1,140 @@
|
||||
--- perl-5.10.0/op.c 2007-12-18 05:47:07.000000000 -0500
|
||||
+++ perl-5.10.0/op.c 2007-12-31 11:15:57.000000000 -0500
|
||||
@@ -3992,6 +3992,7 @@
|
||||
static const char no_list_state[] = "Initialization of state variables"
|
||||
" in list context currently forbidden";
|
||||
OP *curop;
|
||||
+ bool maybe_common_vars = TRUE;
|
||||
|
||||
PL_modcount = 0;
|
||||
/* Grandfathering $[ assignment here. Bletch.*/
|
||||
@@ -4009,6 +4010,65 @@
|
||||
o = newBINOP(OP_AASSIGN, flags, list(force_list(right)), curop);
|
||||
o->op_private = (U8)(0 | (flags >> 8));
|
||||
|
||||
+ if ((left->op_type == OP_LIST
|
||||
+ || (left->op_type == OP_NULL && left->op_targ == OP_LIST)))
|
||||
+ {
|
||||
+ OP* lop = ((LISTOP*)left)->op_first;
|
||||
+ maybe_common_vars = FALSE;
|
||||
+ while (lop) {
|
||||
+ if (lop->op_type == OP_PADSV ||
|
||||
+ lop->op_type == OP_PADAV ||
|
||||
+ lop->op_type == OP_PADHV ||
|
||||
+ lop->op_type == OP_PADANY) {
|
||||
+ if (!(lop->op_private & OPpLVAL_INTRO))
|
||||
+ maybe_common_vars = TRUE;
|
||||
+
|
||||
+ if (lop->op_private & OPpPAD_STATE) {
|
||||
+ if (left->op_private & OPpLVAL_INTRO) {
|
||||
+ /* Each variable in state($a, $b, $c) = ... */
|
||||
+ }
|
||||
+ else {
|
||||
+ /* Each state variable in
|
||||
+ (state $a, my $b, our $c, $d, undef) = ... */
|
||||
+ }
|
||||
+ yyerror(no_list_state);
|
||||
+ } else {
|
||||
+ /* Each my variable in
|
||||
+ (state $a, my $b, our $c, $d, undef) = ... */
|
||||
+ }
|
||||
+ } else if (lop->op_type == OP_UNDEF ||
|
||||
+ lop->op_type == OP_PUSHMARK) {
|
||||
+ /* undef may be interesting in
|
||||
+ (state $a, undef, state $c) */
|
||||
+ } else {
|
||||
+ /* Other ops in the list. */
|
||||
+ maybe_common_vars = TRUE;
|
||||
+ }
|
||||
+ lop = lop->op_sibling;
|
||||
+ }
|
||||
+ }
|
||||
+ else if ((left->op_private & OPpLVAL_INTRO)
|
||||
+ && ( left->op_type == OP_PADSV
|
||||
+ || left->op_type == OP_PADAV
|
||||
+ || left->op_type == OP_PADHV
|
||||
+ || left->op_type == OP_PADANY))
|
||||
+ {
|
||||
+ maybe_common_vars = FALSE;
|
||||
+ if (left->op_private & OPpPAD_STATE) {
|
||||
+ /* All single variable list context state assignments, hence
|
||||
+ state ($a) = ...
|
||||
+ (state $a) = ...
|
||||
+ state @a = ...
|
||||
+ state (@a) = ...
|
||||
+ (state @a) = ...
|
||||
+ state %a = ...
|
||||
+ state (%a) = ...
|
||||
+ (state %a) = ...
|
||||
+ */
|
||||
+ yyerror(no_list_state);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/* PL_generation sorcery:
|
||||
* an assignment like ($a,$b) = ($c,$d) is easier than
|
||||
* ($a,$b) = ($c,$a), since there is no need for temporary vars.
|
||||
@@ -4023,7 +4083,7 @@
|
||||
* to store these values, evil chicanery is done with SvUVX().
|
||||
*/
|
||||
|
||||
- {
|
||||
+ if (maybe_common_vars) {
|
||||
OP *lastop = o;
|
||||
PL_generation++;
|
||||
for (curop = LINKLIST(o); curop != o; curop = LINKLIST(curop)) {
|
||||
@@ -4084,54 +4144,6 @@
|
||||
o->op_private |= OPpASSIGN_COMMON;
|
||||
}
|
||||
|
||||
- if ((left->op_type == OP_LIST
|
||||
- || (left->op_type == OP_NULL && left->op_targ == OP_LIST))) {
|
||||
- OP* lop = ((LISTOP*)left)->op_first;
|
||||
- while (lop) {
|
||||
- if (lop->op_type == OP_PADSV ||
|
||||
- lop->op_type == OP_PADAV ||
|
||||
- lop->op_type == OP_PADHV ||
|
||||
- lop->op_type == OP_PADANY) {
|
||||
- if (lop->op_private & OPpPAD_STATE) {
|
||||
- if (left->op_private & OPpLVAL_INTRO) {
|
||||
- /* Each variable in state($a, $b, $c) = ... */
|
||||
- }
|
||||
- else {
|
||||
- /* Each state variable in
|
||||
- (state $a, my $b, our $c, $d, undef) = ... */
|
||||
- }
|
||||
- yyerror(no_list_state);
|
||||
- } else {
|
||||
- /* Each my variable in
|
||||
- (state $a, my $b, our $c, $d, undef) = ... */
|
||||
- }
|
||||
- } else {
|
||||
- /* Other ops in the list. undef may be interesting in
|
||||
- (state $a, undef, state $c) */
|
||||
- }
|
||||
- lop = lop->op_sibling;
|
||||
- }
|
||||
- }
|
||||
- else if (((left->op_private & (OPpLVAL_INTRO | OPpPAD_STATE))
|
||||
- == (OPpLVAL_INTRO | OPpPAD_STATE))
|
||||
- && ( left->op_type == OP_PADSV
|
||||
- || left->op_type == OP_PADAV
|
||||
- || left->op_type == OP_PADHV
|
||||
- || left->op_type == OP_PADANY))
|
||||
- {
|
||||
- /* All single variable list context state assignments, hence
|
||||
- state ($a) = ...
|
||||
- (state $a) = ...
|
||||
- state @a = ...
|
||||
- state (@a) = ...
|
||||
- (state @a) = ...
|
||||
- state %a = ...
|
||||
- state (%a) = ...
|
||||
- (state %a) = ...
|
||||
- */
|
||||
- yyerror(no_list_state);
|
||||
- }
|
||||
-
|
||||
if (right && right->op_type == OP_SPLIT && !PL_madskills) {
|
||||
OP* tmpop = ((LISTOP*)right)->op_first;
|
||||
if (tmpop && (tmpop->op_type == OP_PUSHRE)) {
|
16
perl.spec
16
perl.spec
@ -16,7 +16,7 @@
|
||||
|
||||
Name: perl
|
||||
Version: %{perl_version}
|
||||
Release: 7%{?dist}
|
||||
Release: 8%{?dist}
|
||||
Epoch: %{perl_epoch}
|
||||
Summary: The Perl programming language
|
||||
Group: Development/Languages
|
||||
@ -62,6 +62,9 @@ Patch9: perl-5.10.0-SysSyslog-0.24.patch
|
||||
# systems.
|
||||
Patch10: perl-5.10.0-x86_64-io-test-failure.patch
|
||||
|
||||
# http://public.activestate.com/cgi-bin/perlbrowse/p/32891
|
||||
Patch11: 32891.patch
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: tcsh, dos2unix, man, groff
|
||||
BuildRequires: gdbm-devel, db4-devel, zlib-devel
|
||||
@ -131,6 +134,7 @@ Provides: perl-File-Temp = 0.18
|
||||
Obsoletes: perl-File-Temp < 0.18
|
||||
Conflicts: perl-File-Temp
|
||||
|
||||
|
||||
Requires: perl-libs = %{perl_epoch}:%{perl_version}-%{release}
|
||||
Requires: db4 = %{db4_major}.%{db4_minor}.%{db4_patch}
|
||||
|
||||
@ -778,6 +782,7 @@ upstream tarball from perl.org.
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
|
||||
#
|
||||
# Candidates for doc recoding (need case by case review):
|
||||
@ -849,10 +854,10 @@ echo "RPM Build arch: %{_arch}"
|
||||
%ifarch %{multilib_64_archs}
|
||||
-Dlibpth="/usr/local/lib64 /lib64 %{_prefix}/lib64" \
|
||||
-Dprivlib="%{_prefix}/lib/perl5/%{perl_version}" \
|
||||
-Dsitelib="%{_prefix}/lib/perl5/site_perl/%{perl_version}" \
|
||||
-Dsitelib="%{_prefix}/local/lib/perl5/site_perl/%{perl_version}" \
|
||||
-Dvendorlib="%{_prefix}/lib/perl5/vendor_perl/%{perl_version}" \
|
||||
-Darchlib="%{_libdir}/perl5/%{perl_version}/%{perl_archname}" \
|
||||
-Dsitearch="%{_libdir}/perl5/site_perl/%{perl_version}/%{perl_archname}" \
|
||||
-Dsitearch="%{_prefix}/local/%{_lib}/perl5/site_perl/%{perl_version}/%{perl_archname}" \
|
||||
-Dvendorarch="%{_libdir}/perl5/vendor_perl/%{perl_version}/%{perl_archname}" \
|
||||
%endif
|
||||
-Darchname=%{_arch}-%{_os} \
|
||||
@ -892,7 +897,6 @@ make install DESTDIR=$RPM_BUILD_ROOT
|
||||
|
||||
%ifarch %{multilib_64_archs}
|
||||
mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{perl_version}
|
||||
mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/site_perl/%{perl_version}
|
||||
mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/vendor_perl/%{perl_version}
|
||||
mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/vendor_perl/%{perl_version}/auto
|
||||
%endif
|
||||
@ -1564,6 +1568,10 @@ make test
|
||||
|
||||
# Old changelog entries are preserved in CVS.
|
||||
%changelog
|
||||
* Fri Mar 7 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4:5.10.0-8
|
||||
- use /usr/local for sitelib/sitearch dirs
|
||||
- patch 32891 for significant performance improvement
|
||||
|
||||
* Fri Feb 22 2008 Stepan Kasal <skasal@redhat.com> - 4:5.10.0-7
|
||||
- Add perl-File-Temp provides/obsoletes/conflicts (#433836),
|
||||
reported by Bill McGonigle <bill@bfccomputing.com>
|
||||
|
Loading…
Reference in New Issue
Block a user