package/pcre2: fix build on mips r6
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Tue, 3 Nov 2020 17:13:28 +0000 (18:13 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Tue, 3 Nov 2020 19:55:04 +0000 (20:55 +0100)
Fix build of pcre2 10.35 on mips r6:
https://bugs.exim.org/show_bug.cgi?id=2667

Fixes:
 - http://autobuild.buildroot.org/results/eab208c050867c9bd12bd80dca33cbe0199b0a7d

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/pcre2/0001-Use-the-standard-code-path-of-sljit_emit_cmov-on-mips-r6.patch [new file with mode: 0644]

diff --git a/package/pcre2/0001-Use-the-standard-code-path-of-sljit_emit_cmov-on-mips-r6.patch b/package/pcre2/0001-Use-the-standard-code-path-of-sljit_emit_cmov-on-mips-r6.patch
new file mode 100644 (file)
index 0000000..9d8e44a
--- /dev/null
@@ -0,0 +1,59 @@
+From 5d7f6573c1eef30a9720edd31a92c1a4b99b7d86 Mon Sep 17 00:00:00 2001
+From: Zoltan Herczeg <zherczeg.u-szeged@partner.samsung.com>
+Date: Tue, 3 Nov 2020 14:12:01 +0100
+Subject: [PATCH] Use the standard code path of sljit_emit_cmov on mips r6.
+ (#97)
+
+[Retrieved (and updated to fix paths) from:
+https://github.com/zherczeg/sljit/commit/5d7f6573c1eef30a9720edd31a92c1a4b99b7d86
+SVN commit: https://vcs.pcre.org/pcre2?view=revision&revision=1281]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ sljit_src/sljitLir.c               | 2 +-
+ sljit_src/sljitNativeMIPS_common.c | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/sljit/sljitLir.c b/src/sljit/sljitLir.c
+index 4078613..d817c90 100644
+--- a/src/sljit/sljitLir.c
++++ b/src/sljit/sljitLir.c
+@@ -2043,7 +2043,7 @@ static SLJIT_INLINE sljit_s32 emit_mov_before_return(struct sljit_compiler *comp
+ #if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86) \
+               || (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC) \
+               || (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32) \
+-              || ((defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) && !(defined SLJIT_MIPS_REV && SLJIT_MIPS_REV >= 1))
++              || ((defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) && !(defined SLJIT_MIPS_REV && SLJIT_MIPS_REV >= 1 && SLJIT_MIPS_REV < 6))
+ static SLJIT_INLINE sljit_s32 sljit_emit_cmov_generic(struct sljit_compiler *compiler, sljit_s32 type,
+       sljit_s32 dst_reg,
+diff --git a/src/sljit/sljitNativeMIPS_common.c b/src/sljit/sljitNativeMIPS_common.c
+index 8b8c12a..ecf4dac 100644
+--- a/src/sljit/sljitNativeMIPS_common.c
++++ b/src/sljit/sljitNativeMIPS_common.c
+@@ -2186,14 +2186,14 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil
+       sljit_s32 dst_reg,
+       sljit_s32 src, sljit_sw srcw)
+ {
+-#if (defined SLJIT_MIPS_REV && SLJIT_MIPS_REV >= 1)
++#if (defined SLJIT_MIPS_REV && SLJIT_MIPS_REV >= 1 && SLJIT_MIPS_REV < 6)
+       sljit_ins ins;
+-#endif /* SLJIT_MIPS_REV >= 1 */
++#endif /* SLJIT_MIPS_REV >= 1 && SLJIT_MIPS_REV < 6 */
+       CHECK_ERROR();
+       CHECK(check_sljit_emit_cmov(compiler, type, dst_reg, src, srcw));
+-#if (defined SLJIT_MIPS_REV && SLJIT_MIPS_REV >= 1)
++#if (defined SLJIT_MIPS_REV && SLJIT_MIPS_REV >= 1 && SLJIT_MIPS_REV < 6)
+       if (SLJIT_UNLIKELY(src & SLJIT_IMM)) {
+ #if (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
+@@ -2250,7 +2250,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil
+       return push_inst(compiler, ins | S(src) | D(dst_reg), DR(dst_reg));
+-#else /* SLJIT_MIPS_REV < 1 */
++#else /* SLJIT_MIPS_REV < 1 || SLJIT_MIPS_REV >= 6 */
+       return sljit_emit_cmov_generic(compiler, type, dst_reg, src, srcw);
+ #endif /* SLJIT_MIPS_REV >= 1 */
+ }