diff options
author | Sergey Skvortsov <skv@FreeBSD.org> | 2009-01-13 21:38:50 +0000 |
---|---|---|
committer | Sergey Skvortsov <skv@FreeBSD.org> | 2009-01-13 21:38:50 +0000 |
commit | 4ab5fefc98eaa00392de2ce4470acec599b7a6a2 (patch) | |
tree | 5bf114288fee3a5bd15c167bfe721b43460eca45 /lang/perl5.8/files | |
parent | db7510e1736eccb319ee572b971704d92afccb56 (diff) |
Notes
Diffstat (limited to 'lang/perl5.8/files')
-rw-r--r-- | lang/perl5.8/files/patch-freebsd.sh | 39 | ||||
-rw-r--r-- | lang/perl5.8/files/patch-makedepend | 10 | ||||
-rw-r--r-- | lang/perl5.8/files/patch-perl.c | 48 | ||||
-rw-r--r-- | lang/perl5.8/files/patch-sv.c | 21 | ||||
-rw-r--r-- | lang/perl5.8/files/patch-utf-regcomp | 95 |
5 files changed, 58 insertions, 155 deletions
diff --git a/lang/perl5.8/files/patch-freebsd.sh b/lang/perl5.8/files/patch-freebsd.sh index ca8fa5a82cfb..4587e5338e7f 100644 --- a/lang/perl5.8/files/patch-freebsd.sh +++ b/lang/perl5.8/files/patch-freebsd.sh @@ -1,6 +1,6 @@ ---- hints/freebsd.sh.orig Wed Mar 24 22:47:33 2004 -+++ hints/freebsd.sh Mon Feb 19 20:53:50 2007 -@@ -88,6 +88,8 @@ case "$osvers" in +--- hints/freebsd.sh ++++ hints/freebsd.sh +@@ -88,6 +88,8 @@ esac libswanted=`echo $libswanted | sed 's/ malloc / /'` libswanted=`echo $libswanted | sed 's/ bind / /'` @@ -9,7 +9,7 @@ # iconv gone in Perl 5.8.1, but if someone compiles 5.8.0 or earlier. libswanted=`echo $libswanted | sed 's/ iconv / /'` d_setregid='define' -@@ -102,6 +104,10 @@ case "$osvers" in +@@ -102,6 +104,10 @@ ;; esac libswanted=`echo $libswanted | sed 's/ malloc / /'` @@ -20,31 +20,16 @@ ;; esac -@@ -116,17 +122,17 @@ case "$osvers" in - - *) - objformat=`/usr/bin/objformat` -- if [ x$objformat = xelf ]; then -- libpth="/usr/lib /usr/local/lib" -- glibpth="/usr/lib /usr/local/lib" +@@ -125,7 +131,7 @@ + else + libpth="/usr/lib /usr/local/lib" + glibpth="/usr/lib /usr/local/lib" - ldflags="-Wl,-E " -- lddlflags="-shared " -- else -+ if [ x$objformat = xaout ]; then - if [ -e /usr/lib/aout ]; then - libpth="/usr/lib/aout /usr/local/lib /usr/lib" - glibpth="/usr/lib/aout /usr/local/lib /usr/lib" - fi - lddlflags='-Bshareable' -+ else -+ libpth="/usr/lib /usr/local/lib" -+ glibpth="/usr/lib /usr/local/lib" -+ ldflags="%%PTHREAD_LIBS%% -Wl,-E" -+ lddlflags="-shared " ++ ldflags="%%PTHREAD_LIBS%% -Wl,-E " + lddlflags="-shared " fi cccdlflags='-DPIC -fPIC' - ;; -@@ -136,7 +142,7 @@ case "$osvers" in +@@ -136,7 +142,7 @@ 0*|1*|2*|3*) ;; *) @@ -53,7 +38,7 @@ if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then usenm=false fi -@@ -183,7 +189,9 @@ esac +@@ -183,7 +189,9 @@ # This script UU/usethreads.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use threads. diff --git a/lang/perl5.8/files/patch-makedepend b/lang/perl5.8/files/patch-makedepend deleted file mode 100644 index 4a79cc4ecbd3..000000000000 --- a/lang/perl5.8/files/patch-makedepend +++ /dev/null @@ -1,10 +0,0 @@ ---- makedepend.SH.orig Wed May 2 22:37:13 2007 -+++ makedepend.SH Wed May 2 22:38:48 2007 -@@ -167,6 +167,7 @@ - -e '/^#.*<builtin>/d' \ - -e '/^#.*<built-in>/d' \ - -e '/^#.*<command line>/d' \ -+ -e '/^#.*<command-line>/d' \ - -e '/^#.*"-"/d' \ - -e '/: file path prefix .* never used$/d' \ - -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \ diff --git a/lang/perl5.8/files/patch-perl.c b/lang/perl5.8/files/patch-perl.c index 918c773b8ccb..e9cd514c8868 100644 --- a/lang/perl5.8/files/patch-perl.c +++ b/lang/perl5.8/files/patch-perl.c @@ -1,58 +1,60 @@ ---- perl.c.orig Fri Apr 22 16:14:27 2005 -+++ perl.c Thu Dec 22 12:47:28 2005 -@@ -4397,6 +4397,27 @@ S_init_perllib(pTHX) - incpush(APPLLIB_EXP, TRUE, TRUE, TRUE); +--- perl.c ++++ perl.c +@@ -4882,6 +4882,28 @@ + incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE); #endif +#ifdef SITEARCH_EXP + /* sitearch is always relative to sitelib on Windows for + * DLL-based path intuition to work correctly */ +# if !defined(WIN32) -+ incpush(SITEARCH_EXP, FALSE, FALSE, TRUE); ++ incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE); +# endif +#endif + +#ifdef SITELIB_EXP +# if defined(WIN32) + /* this picks up sitearch as well */ -+ incpush(SITELIB_EXP, TRUE, FALSE, TRUE); ++ incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE); +# else -+ incpush(SITELIB_EXP, FALSE, FALSE, TRUE); ++ incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE); +# endif +#endif + -+#ifdef SITELIB_STEM /* Search for version-specific dirs below here */ -+ incpush(SITELIB_STEM, FALSE, TRUE, TRUE); ++#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST) ++ /* Search for version-specific dirs below here */ ++ incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE); +#endif + #ifdef ARCHLIB_EXP - incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE); + incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE); #endif -@@ -4428,27 +4449,6 @@ S_init_perllib(pTHX) - incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE); - #else - incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE); --#endif -- +@@ -4915,28 +4937,6 @@ + incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE); + #endif + -#ifdef SITEARCH_EXP - /* sitearch is always relative to sitelib on Windows for - * DLL-based path intuition to work correctly */ -# if !defined(WIN32) -- incpush(SITEARCH_EXP, FALSE, FALSE, TRUE); +- incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE); -# endif -#endif - -#ifdef SITELIB_EXP -# if defined(WIN32) - /* this picks up sitearch as well */ -- incpush(SITELIB_EXP, TRUE, FALSE, TRUE); +- incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE); -# else -- incpush(SITELIB_EXP, FALSE, FALSE, TRUE); +- incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE); -# endif -#endif - --#ifdef SITELIB_STEM /* Search for version-specific dirs below here */ -- incpush(SITELIB_STEM, FALSE, TRUE, TRUE); - #endif - +-#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST) +- /* Search for version-specific dirs below here */ +- incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE); +-#endif +- #ifdef PERL_VENDORARCH_EXP + /* vendorarch is always relative to vendorlib on Windows for + * DLL-based path intuition to work correctly */ diff --git a/lang/perl5.8/files/patch-sv.c b/lang/perl5.8/files/patch-sv.c new file mode 100644 index 000000000000..aeb160db81bd --- /dev/null +++ b/lang/perl5.8/files/patch-sv.c @@ -0,0 +1,21 @@ +--- sv.c ++++ sv.c +@@ -9813,7 +9813,8 @@ Perl_sv_dup(pTHX_ SV *sstr, CLONE_PARAMS* param) + IoBOTTOM_NAME(dstr) = SAVEPV(IoBOTTOM_NAME(dstr)); + break; + case SVt_PVAV: +- if (AvARRAY((AV*)sstr)) { ++ /* avoid cloning an empty array */ ++ if (AvARRAY((AV*)sstr) && AvFILLp((AV*)sstr >= 0) { + SV **dst_ary, **src_ary; + SSize_t items = AvFILLp((AV*)sstr) + 1; + +@@ -9838,6 +9839,8 @@ Perl_sv_dup(pTHX_ SV *sstr, CLONE_PARAMS* param) + else { + SvPV_set(dstr, NULL); + AvALLOC((AV*)dstr) = (SV**)NULL; ++ AvMAX( (AV *)dstr) = -1; ++ AvFILLp((AV *)dstr) = -1; + } + AvARYLEN((AV*)dstr) = sv_dup_inc(AvARYLEN((AV*)sstr), param); + break; diff --git a/lang/perl5.8/files/patch-utf-regcomp b/lang/perl5.8/files/patch-utf-regcomp deleted file mode 100644 index 44c9a55de49a..000000000000 --- a/lang/perl5.8/files/patch-utf-regcomp +++ /dev/null @@ -1,95 +0,0 @@ ---- regcomp.c.orig 2006-01-08 21:59:27.000000000 +0100 -+++ regcomp.c 2007-11-06 22:48:26.000000000 +0100 -@@ -135,7 +135,10 @@ typedef struct RExC_state_t { - I32 extralen; - I32 seen_zerolen; - I32 seen_evals; -- I32 utf8; -+ I32 utf8; /* whether the pattern is utf8 or not */ -+ I32 orig_utf8; /* whether the pattern was originally in utf8 */ -+ /* XXX use this for future optimisation of case -+ * where pattern must be upgraded to utf8. */ - #if ADD_TO_REGEXEC - char *starttry; /* -Dr: where regtry was called. */ - #define RExC_starttry (pRExC_state->starttry) -@@ -161,6 +164,7 @@ typedef struct RExC_state_t { - #define RExC_seen_zerolen (pRExC_state->seen_zerolen) - #define RExC_seen_evals (pRExC_state->seen_evals) - #define RExC_utf8 (pRExC_state->utf8) -+#define RExC_orig_utf8 (pRExC_state->orig_utf8) - - #define ISMULT1(c) ((c) == '*' || (c) == '+' || (c) == '?') - #define ISMULT2(s) ((*s) == '*' || (*s) == '+' || (*s) == '?' || \ -@@ -1749,15 +1753,16 @@ Perl_pregcomp(pTHX_ char *exp, char *xen - if (exp == NULL) - FAIL("NULL regexp argument"); - -- RExC_utf8 = pm->op_pmdynflags & PMdf_CMP_UTF8; -+ RExC_utf8 = RExC_orig_utf8 = pm->op_pmdynflags & PMdf_CMP_UTF8; - -- RExC_precomp = exp; - DEBUG_r({ - if (!PL_colorset) reginitcolors(); - PerlIO_printf(Perl_debug_log, "%sCompiling REx%s `%s%*s%s'\n", - PL_colors[4],PL_colors[5],PL_colors[0], -- (int)(xend - exp), RExC_precomp, PL_colors[1]); -+ (int)(xend - exp), exp, PL_colors[1]); - }); -+redo_first_pass: -+ RExC_precomp = exp; - RExC_flags = pm->op_pmflags; - RExC_sawback = 0; - -@@ -1783,6 +1788,25 @@ Perl_pregcomp(pTHX_ char *exp, char *xen - RExC_precomp = Nullch; - return(NULL); - } -+ if (RExC_utf8 && !RExC_orig_utf8) { -+ /* It's possible to write a regexp in ascii that represents unicode -+ codepoints outside of the byte range, such as via \x{100}. If we -+ detect such a sequence we have to convert the entire pattern to utf8 -+ and then recompile, as our sizing calculation will have been based -+ on 1 byte == 1 character, but we will need to use utf8 to encode -+ at least some part of the pattern, and therefore must convert the whole -+ thing. -+ XXX: somehow figure out how to make this less expensive... -+ -- dmq */ -+ STRLEN len = xend-exp; -+ DEBUG_r(PerlIO_printf(Perl_debug_log, -+ "UTF8 mismatch! Converting to utf8 for resizing and compile\n")); -+ exp = (char*)Perl_bytes_to_utf8(aTHX_ (U8*)exp, &len); -+ xend = exp + len; -+ RExC_orig_utf8 = RExC_utf8; -+ SAVEFREEPV(exp); -+ goto redo_first_pass; -+ } - DEBUG_r(PerlIO_printf(Perl_debug_log, "size %"IVdf" ", (IV)RExC_size)); - - /* Small enough for pointer-storage convention? ---- t/op/pat.t.orig 2006-01-07 13:53:32.000000000 +0100 -+++ t/op/pat.t 2007-11-06 21:52:30.000000000 +0100 -@@ -6,7 +6,7 @@ - - $| = 1; - --print "1..1187\n"; -+print "1..1189\n"; - - BEGIN { - chdir 't' if -d 't'; -@@ -3395,5 +3395,14 @@ ok(("foba ba$s" =~ qr/(foo|BaSS|bar)/i) - "# assigning to original string should not corrupt match vars"); - } - --# last test 1187 -+{ -+ use warnings; -+ my @w; -+ local $SIG{__WARN__}=sub{push @w,"@_"}; -+ my $c=qq(\x{DF}); -+ ok($c=~/${c}|\x{100}/, "ASCII pattern that really is utf8"); -+ ok(@w==0, "ASCII pattern that really is utf8"); -+} -+ -+# last test 1189 - |