git: b6bb44e5ba88 - main - pcre: fix runtime issues on powerpc

From: Piotr Kubaj <pkubaj_at_FreeBSD.org>
Date: Fri, 25 Mar 2022 14:38:40 UTC
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b6bb44e5ba8832aa575c28a13cef3ea2c9edc8b6

commit b6bb44e5ba8832aa575c28a13cef3ea2c9edc8b6
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2022-03-25 14:29:03 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2022-03-25 14:29:03 +0000

    pcre: fix runtime issues on powerpc
    
    In sljitConfigInternal.h, pcre checks for existence of __builtin___clear_cache() function.
    LLVM provides that function for all platforms, even those that don't have implemented flushing the cache.
    
    This leads to runtime errors on e.g. powerpc (32-bit) with __clear_cache() calling compilerrt_abort(), resulting in SIGABRT.
---
 devel/pcre/Makefile                                           |  1 +
 devel/pcre/files/patch-sljit_sljitConfigInternal.h            | 11 +++++++++++
 devel/pcre2/Makefile                                          |  1 +
 devel/pcre2/files/patch-sljit_sljitConfigInternal.h           | 11 +++++++++++
 lang/php74/Makefile                                           |  2 +-
 .../files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h | 11 +++++++++++
 lang/php80/Makefile                                           |  2 +-
 .../files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h | 11 +++++++++++
 lang/php81/Makefile                                           |  2 +-
 .../files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h | 11 +++++++++++
 10 files changed, 60 insertions(+), 3 deletions(-)

diff --git a/devel/pcre/Makefile b/devel/pcre/Makefile
index 90419f360f41..f16c178e08dd 100644
--- a/devel/pcre/Makefile
+++ b/devel/pcre/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	pcre
 PORTVERSION=	8.45
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	https://ftp.pcre.org/pub/pcre/ \
 		SF
diff --git a/devel/pcre/files/patch-sljit_sljitConfigInternal.h b/devel/pcre/files/patch-sljit_sljitConfigInternal.h
new file mode 100644
index 000000000000..a8b0b81da719
--- /dev/null
+++ b/devel/pcre/files/patch-sljit_sljitConfigInternal.h
@@ -0,0 +1,11 @@
+--- sljit/sljitConfigInternal.h.orig	2022-03-25 09:54:56 UTC
++++ sljit/sljitConfigInternal.h
+@@ -283,7 +283,7 @@
+ /* Instruction cache flush. */
+ /****************************/
+ 
+-#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin)
++#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin && !defined SLJIT_CONFIG_PPC_32)
+ #if __has_builtin(__builtin___clear_cache)
+ 
+ #define SLJIT_CACHE_FLUSH(from, to) \
diff --git a/devel/pcre2/Makefile b/devel/pcre2/Makefile
index cd3070e986df..66ef4f909a30 100644
--- a/devel/pcre2/Makefile
+++ b/devel/pcre2/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	pcre2
 PORTVERSION=	10.39
+PORTREVISION=	1
 CATEGORIES=	devel
 
 MAINTAINER=	krion@FreeBSD.org
diff --git a/devel/pcre2/files/patch-sljit_sljitConfigInternal.h b/devel/pcre2/files/patch-sljit_sljitConfigInternal.h
new file mode 100644
index 000000000000..a8b0b81da719
--- /dev/null
+++ b/devel/pcre2/files/patch-sljit_sljitConfigInternal.h
@@ -0,0 +1,11 @@
+--- sljit/sljitConfigInternal.h.orig	2022-03-25 09:54:56 UTC
++++ sljit/sljitConfigInternal.h
+@@ -283,7 +283,7 @@
+ /* Instruction cache flush. */
+ /****************************/
+ 
+-#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin)
++#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin && !defined SLJIT_CONFIG_PPC_32)
+ #if __has_builtin(__builtin___clear_cache)
+ 
+ #define SLJIT_CACHE_FLUSH(from, to) \
diff --git a/lang/php74/Makefile b/lang/php74/Makefile
index 5bbac616954c..b957bc16d171 100644
--- a/lang/php74/Makefile
+++ b/lang/php74/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	php74
 DISTVERSION=	7.4.28
-PORTREVISION?=	0
+PORTREVISION?=	1
 CATEGORIES?=	lang devel www
 MASTER_SITES=	PHP
 DISTNAME=	php-${DISTVERSION}
diff --git a/lang/php74/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h b/lang/php74/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h
new file mode 100644
index 000000000000..9a75bc3e86c1
--- /dev/null
+++ b/lang/php74/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h
@@ -0,0 +1,11 @@
+--- ext/pcre/pcre2lib/sljit/sljitConfigInternal.h.orig	2022-03-25 09:54:56 UTC
++++ ext/pcre/pcre2lib/sljit/sljitConfigInternal.h
+@@ -283,7 +283,7 @@
+ /* Instruction cache flush. */
+ /****************************/
+ 
+-#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin)
++#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin && !defined SLJIT_CONFIG_PPC_32)
+ #if __has_builtin(__builtin___clear_cache)
+ 
+ #define SLJIT_CACHE_FLUSH(from, to) \
diff --git a/lang/php80/Makefile b/lang/php80/Makefile
index abccb8e1b2e4..2e7019ee7fc1 100644
--- a/lang/php80/Makefile
+++ b/lang/php80/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	php80
 DISTVERSION=	8.0.17
-PORTREVISION?=	0
+PORTREVISION?=	1
 CATEGORIES?=	lang devel www
 MASTER_SITES=	PHP
 DISTNAME=	php-${DISTVERSION}
diff --git a/lang/php80/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h b/lang/php80/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h
new file mode 100644
index 000000000000..9a75bc3e86c1
--- /dev/null
+++ b/lang/php80/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h
@@ -0,0 +1,11 @@
+--- ext/pcre/pcre2lib/sljit/sljitConfigInternal.h.orig	2022-03-25 09:54:56 UTC
++++ ext/pcre/pcre2lib/sljit/sljitConfigInternal.h
+@@ -283,7 +283,7 @@
+ /* Instruction cache flush. */
+ /****************************/
+ 
+-#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin)
++#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin && !defined SLJIT_CONFIG_PPC_32)
+ #if __has_builtin(__builtin___clear_cache)
+ 
+ #define SLJIT_CACHE_FLUSH(from, to) \
diff --git a/lang/php81/Makefile b/lang/php81/Makefile
index 670df40197ca..85bfbbd4db87 100644
--- a/lang/php81/Makefile
+++ b/lang/php81/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	php81
 DISTVERSION=	8.1.4
-PORTREVISION?=	0
+PORTREVISION?=	1
 CATEGORIES?=	lang devel www
 MASTER_SITES=	PHP/distributions
 DISTNAME=	php-${DISTVERSION}
diff --git a/lang/php81/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h b/lang/php81/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h
new file mode 100644
index 000000000000..9a75bc3e86c1
--- /dev/null
+++ b/lang/php81/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h
@@ -0,0 +1,11 @@
+--- ext/pcre/pcre2lib/sljit/sljitConfigInternal.h.orig	2022-03-25 09:54:56 UTC
++++ ext/pcre/pcre2lib/sljit/sljitConfigInternal.h
+@@ -283,7 +283,7 @@
+ /* Instruction cache flush. */
+ /****************************/
+ 
+-#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin)
++#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin && !defined SLJIT_CONFIG_PPC_32)
+ #if __has_builtin(__builtin___clear_cache)
+ 
+ #define SLJIT_CACHE_FLUSH(from, to) \