diff options
author | jlam <jlam@pkgsrc.org> | 2001-06-07 04:26:48 +0000 |
---|---|---|
committer | jlam <jlam@pkgsrc.org> | 2001-06-07 04:26:48 +0000 |
commit | 22d3aa5a41c3c2f011937d53a72c34955c2aa880 (patch) | |
tree | 84866b0bff51c35f8336d5d3de5a33eb6b174a6b /lang | |
parent | a9dd17e5843758a41a33679036c99891927d7702 (diff) | |
download | pkgsrc-22d3aa5a41c3c2f011937d53a72c34955c2aa880.tar.gz |
Add patch missing from update to perl 5.6.1.
Diffstat (limited to 'lang')
-rw-r--r-- | lang/perl5-base/patches/patch-ae | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lang/perl5-base/patches/patch-ae b/lang/perl5-base/patches/patch-ae new file mode 100644 index 00000000000..fba896a01b6 --- /dev/null +++ b/lang/perl5-base/patches/patch-ae @@ -0,0 +1,51 @@ +$NetBSD: patch-ae,v 1.3 2001/06/07 04:26:48 jlam Exp $ + +--- regcomp.c.orig Thu Mar 22 00:05:02 2001 ++++ regcomp.c Sun May 27 17:02:37 2001 +@@ -541,6 +541,17 @@ + cl->flags |= ANYOF_EOS; + } + ++/* ++ * There are strange code-generation bugs caused on sparc64 by gcc-2.95.2. ++ * These need to be revisited when a newer toolchain becomes available. ++ */ ++#if defined(__sparc64__) && defined(__GNUC__) ++#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) ++#undef SPARC64_WORKAROUND ++#define SPARC64_WORKAROUND 1 ++#endif ++#endif ++ + /* REx optimizer. Converts nodes into quickier variants "in place". + Finds fixed substrings. */ + +@@ -1076,11 +1087,28 @@ + int counted = mincount != 0; + + if (data->last_end > 0 && mincount != 0) { /* Ends with a string. */ ++#if defined(SPARC64_WORKAROUND) ++ I32 b = 0; ++ STRLEN l = 0; ++ char *s = NULL; ++ I32 old = 0; ++ ++ if (pos_before >= data->last_start_min) ++ b = pos_before; ++ else ++ b = data->last_start_min; ++ ++ l = 0; ++ s = SvPV(data->last_found, l); ++ old = b - data->last_start_min; ++ ++#else + I32 b = pos_before >= data->last_start_min + ? pos_before : data->last_start_min; + STRLEN l; + char *s = SvPV(data->last_found, l); + I32 old = b - data->last_start_min; ++#endif + + if (UTF) + old = utf8_hop((U8*)s, old) - (U8*)s; |