summaryrefslogtreecommitdiff
path: root/dev-libs/libpcre2
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/libpcre2')
-rw-r--r--dev-libs/libpcre2/Manifest3
-rw-r--r--dev-libs/libpcre2/files/libpcre2-10.37-jit_fixes.patch80
-rw-r--r--dev-libs/libpcre2/libpcre2-10.37-r2.ebuild (renamed from dev-libs/libpcre2/libpcre2-10.37-r1.ebuild)4
3 files changed, 86 insertions, 1 deletions
diff --git a/dev-libs/libpcre2/Manifest b/dev-libs/libpcre2/Manifest
index 9d51c2f376fb..64359481e454 100644
--- a/dev-libs/libpcre2/Manifest
+++ b/dev-libs/libpcre2/Manifest
@@ -1,6 +1,7 @@
+AUX libpcre2-10.37-jit_fixes.patch 3022 BLAKE2B 7e3091cc46d60ec3c72981f1980f7ebcfaeecc1c777188bed0edbaa64205752fcd69164ebf5de670f857f4837a76593c1930cdfe7997b49b38dc1501d7e5cbec SHA512 b691357b43032be0e97234a7fb27b4bdb684028acd4e2bc3da9a997ba823e8ffc9eca1d32fb5c3bc5700b7504ad16f83aa0f6e486c869e529cdbfa597024ad70
DIST libpcre2-10.36-patchset-01.tar.xz 1364 BLAKE2B bfef3c876a092e06972107b44794c23b758a030181f3040c8b722db166789eac794783169b468fc71334fd660bc2f1c31422a8cb8e5bdc18a69b72654b1b59b2 SHA512 04324d1efa6d155fa3ffbc328638e4674bea305fef7f57d4369ab4a6399a0f489b4c0ecfb49643feff310d91872e1673e965c48a5c60f1bf54a319f0d275c306
DIST pcre2-10.36.tar.bz2 1722310 BLAKE2B 5c70b7b1b0644edbcc29d3486fc0f3e2d0cb4822f4f3f3e7df603b4f4e27656a2e7f71389628ceb9bd7acc746ce4b626cd2a128d894840b22796841d1269765f SHA512 fc2a920562c80c3d31cedd94028fab55314ae0fb168cac7178f286c344a11fc514939edc3b83b8e0b57c872db4e595fd5530fd1d4b8c779be629553e9ec965a3
DIST pcre2-10.37.tar.bz2 1729384 BLAKE2B b4e56041010d7f44e84a63a17b35e87329d258107d8b27ccead10f51e7deacc93cbee64a22c71b9f0b8f244920b3a22fa4d9b786ec441a428e0ad0bb8535773e SHA512 69f4bf4736b986e0fc855eedb292efe72a0df2e803bc0e61a6cf47775eed433bb1b2f28d7e641591ef4603d47beb543a64ed0eef9538d00f0746bc3435c143ec
EBUILD libpcre2-10.36-r1.ebuild 2482 BLAKE2B a569108de5f728ff394048a43b3b2fbe4dd0007da77d0edfa04a5fd973822658e138cbe48ef700a07b8a19b2993e44fce9fb0aefb50cabe285338a63f7b23bc2 SHA512 33af5c3113fadfd29ed6d9d56110be92b85d5cc905e4cbcf69606ef1b797285558106b72135b8abd07e720c0348b1ef7e17dc82ae0243590a5b5ffd314f370a6
-EBUILD libpcre2-10.37-r1.ebuild 2598 BLAKE2B 917fd2653c78a6472026a1d53caaf0a02352e705f831e26223ca4a22c98a08235422d611e780a7fd98961e3b50874da96ed33a54346ad0b13b5420f566d22ab3 SHA512 9c316a1a3d9965a9de317fd610b92e852ee5f3ba2b111b9d351cbd728718637a5427595b24d19fef95c4a2b3bc3d76720ee6c70ddeb3f4755ec446c7f6fa2def
+EBUILD libpcre2-10.37-r2.ebuild 2647 BLAKE2B 03ab44dda646c838a12d6ea42b5f001b2342658a27eed1bcb45c3b35a4d71c20c9bfd7b66cecd96b2d4cf075cd04d87365b45d5c09188e8a78566b50382dc0ed SHA512 7f8bdf84950037af4c314c272c331e428bd34d27d1e5a6701499a0b70eefe886be20177b9320d93773ef1c2dbc9175fa484cde7021896906f725fa15d86f9207
MISC metadata.xml 1140 BLAKE2B 19f0ea04c9613f0c804c76ca74012fa2313ba69b57fe95f31720809a12d5244f78e4ce9c957723b848f0d8c3514ef27fd875f7814d2434c7e50dbcc7325c0a95 SHA512 9b54ed8cdf78e1d3fe737460117cb840280b63c196cca0bfc7b89975ea8102f9729cf5f29628f5cb7b7c1eefd8fd5c67f3c7f5fab64f9d168d6fcdedbd926b51
diff --git a/dev-libs/libpcre2/files/libpcre2-10.37-jit_fixes.patch b/dev-libs/libpcre2/files/libpcre2-10.37-jit_fixes.patch
new file mode 100644
index 000000000000..6ee5494f2bc5
--- /dev/null
+++ b/dev-libs/libpcre2/files/libpcre2-10.37-jit_fixes.patch
@@ -0,0 +1,80 @@
+Index: pcre2/ChangeLog
+===================================================================
+--- pcre2/ChangeLog (revision 1314)
++++ pcre2/ChangeLog (revision 1315)
+@@ -1,7 +1,14 @@
+ Change Log for PCRE2
+ --------------------
+
++Version 10.38-RC1 xx-xxx-2021
++-----------------------------
+
++1. Fix invalid single character repetition issues in JIT when the repetition
++is inside a capturing bracket and the bracket is preceeded by character
++literals.
++
++
+ Version 10.37 26-May-2021
+ -------------------------
+
+Index: pcre2/src/pcre2_jit_compile.c
+===================================================================
+--- pcre2/src/pcre2_jit_compile.c (revision 1314)
++++ pcre2/src/pcre2_jit_compile.c (revision 1315)
+@@ -1236,15 +1236,16 @@
+
+ return: current number of iterators enhanced with fast fail
+ */
+-static int detect_early_fail(compiler_common *common, PCRE2_SPTR cc, int *private_data_start, sljit_s32 depth, int start)
++static int detect_early_fail(compiler_common *common, PCRE2_SPTR cc, int *private_data_start,
++ sljit_s32 depth, int start, BOOL fast_forward_allowed)
+ {
+ PCRE2_SPTR begin = cc;
+ PCRE2_SPTR next_alt;
+ PCRE2_SPTR end;
+ PCRE2_SPTR accelerated_start;
++BOOL prev_fast_forward_allowed;
+ int result = 0;
+ int count;
+-BOOL fast_forward_allowed = TRUE;
+
+ SLJIT_ASSERT(*cc == OP_ONCE || *cc == OP_BRA || *cc == OP_CBRA);
+ SLJIT_ASSERT(*cc != OP_CBRA || common->optimized_cbracket[GET2(cc, 1 + LINK_SIZE)] != 0);
+@@ -1476,6 +1477,7 @@
+ case OP_CBRA:
+ end = cc + GET(cc, 1);
+
++ prev_fast_forward_allowed = fast_forward_allowed;
+ fast_forward_allowed = FALSE;
+ if (depth >= 4)
+ break;
+@@ -1484,7 +1486,7 @@
+ if (*end != OP_KET || (*cc == OP_CBRA && common->optimized_cbracket[GET2(cc, 1 + LINK_SIZE)] == 0))
+ break;
+
+- count = detect_early_fail(common, cc, private_data_start, depth + 1, count);
++ count = detect_early_fail(common, cc, private_data_start, depth + 1, count, prev_fast_forward_allowed);
+
+ if (PRIVATE_DATA(cc) != 0)
+ common->private_data_ptrs[begin - common->start] = 1;
+@@ -13657,7 +13659,7 @@
+ private_data_size = common->cbra_ptr + (re->top_bracket + 1) * sizeof(sljit_sw);
+
+ if ((re->overall_options & PCRE2_ANCHORED) == 0 && (re->overall_options & PCRE2_NO_START_OPTIMIZE) == 0 && !common->has_skip_in_assert_back)
+- detect_early_fail(common, common->start, &private_data_size, 0, 0);
++ detect_early_fail(common, common->start, &private_data_size, 0, 0, TRUE);
+
+ set_private_data_ptrs(common, &private_data_size, ccend);
+
+Index: pcre2/src/pcre2_jit_test.c
+===================================================================
+--- pcre2/src/pcre2_jit_test.c (revision 1314)
++++ pcre2/src/pcre2_jit_test.c (revision 1315)
+@@ -351,6 +351,7 @@
+ { MU, A, 0, 0, ".[ab]*a", "xxa" },
+ { MU, A, 0, 0, ".[ab]?.", "xx" },
+ { MU, A, 0, 0, "_[ab]+_*a", "_aa" },
++ { MU, A, 0, 0, "#(A+)#\\d+", "#A#A#0" },
+
+ /* Bracket repeats with limit. */
+ { MU, A, 0, 0, "(?:(ab){2}){5}M", "abababababababababababM" },
diff --git a/dev-libs/libpcre2/libpcre2-10.37-r1.ebuild b/dev-libs/libpcre2/libpcre2-10.37-r2.ebuild
index 12ac913d688a..8f86138dfd59 100644
--- a/dev-libs/libpcre2/libpcre2-10.37-r1.ebuild
+++ b/dev-libs/libpcre2/libpcre2-10.37-r2.ebuild
@@ -43,6 +43,10 @@ DEPEND="${RDEPEND}"
S="${WORKDIR}/${MY_P}"
+PATCHES=(
+ "${FILESDIR}/${P}-jit_fixes.patch"
+)
+
MULTILIB_CHOST_TOOLS=(
/usr/bin/pcre2-config
)