diff options
Diffstat (limited to 'dev-libs/libpcre2')
-rw-r--r-- | dev-libs/libpcre2/Manifest | 3 | ||||
-rw-r--r-- | dev-libs/libpcre2/files/libpcre2-10.37-jit_fixes.patch | 80 | ||||
-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 ) |