commit:     c2d94c33c28a931a2c4371fafb335b7e5d84aadb
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 25 15:53:03 2021 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Thu Mar 25 15:53:03 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c2d94c33

dev-lang/php: Include upstream patch on 8.0 slot for pdo_firebird

This patch eliminates several warnings which are normally harmless.
However, with certain CFLAGS, the linking may fail as can be seen with
the coverage USE.

This is taken from upstream development branch but has not been
backported to the 8.0 branch.

Closes: https://bugs.gentoo.org/778053
Signed-off-by: Brian Evans <grknight <AT> gentoo.org>

 dev-lang/php/files/php80-firebird-warnings.patch | 56 ++++++++++++++++++++++++
 dev-lang/php/php-8.0.3.ebuild                    |  5 ++-
 2 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/dev-lang/php/files/php80-firebird-warnings.patch 
b/dev-lang/php/files/php80-firebird-warnings.patch
new file mode 100644
index 00000000000..48e38c2135f
--- /dev/null
+++ b/dev-lang/php/files/php80-firebird-warnings.patch
@@ -0,0 +1,56 @@
+From c288b5294bb0e13ad2904a3ec79265f727baaea3 Mon Sep 17 00:00:00 2001
+From: Nikita Popov <[email protected]>
+Date: Mon, 14 Dec 2020 10:36:36 +0100
+Subject: [PATCH] Fix compile warnings in PDO Firebird
+
+---
+ ext/pdo_firebird/firebird_driver.c      | 9 +++++----
+ ext/pdo_firebird/php_pdo_firebird_int.h | 3 +--
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/ext/pdo_firebird/firebird_driver.c 
b/ext/pdo_firebird/firebird_driver.c
+index c299907f0fea1..390871cc200c8 100644
+--- a/ext/pdo_firebird/firebird_driver.c
++++ b/ext/pdo_firebird/firebird_driver.c
+@@ -171,10 +171,11 @@ static const char classes_array[] = {
+       /* 127     */ 0
+ };
+ 
+-inline char classes(char idx)
++static inline char classes(char idx)
+ {
+-      if (idx > 127) return 0;
+-      return classes_array[idx];
++      unsigned char uidx = (unsigned char) idx;
++      if (uidx > 127) return 0;
++      return classes_array[uidx];
+ }
+ 
+ typedef enum {
+@@ -1085,7 +1086,7 @@ static int pdo_firebird_handle_factory(pdo_dbh_t *dbh, 
zval *driver_options) /*
+               char errmsg[512];
+               const ISC_STATUS *s = H->isc_status;
+               fb_interpret(errmsg, sizeof(errmsg),&s);
+-              zend_throw_exception_ex(php_pdo_get_exception(), 
H->isc_status[1], "SQLSTATE[%s] [%d] %s",
++              zend_throw_exception_ex(php_pdo_get_exception(), 
H->isc_status[1], "SQLSTATE[%s] [%ld] %s",
+                               "HY000", H->isc_status[1], errmsg);
+       }
+ 
+diff --git a/ext/pdo_firebird/php_pdo_firebird_int.h 
b/ext/pdo_firebird/php_pdo_firebird_int.h
+index 094767fa355d3..70a895b4b9f83 100644
+--- a/ext/pdo_firebird/php_pdo_firebird_int.h
++++ b/ext/pdo_firebird/php_pdo_firebird_int.h
+@@ -34,12 +34,11 @@
+ #define SHORT_MAX (1 << (8*sizeof(short)-1))
+ 
+ #if SIZEOF_ZEND_LONG == 8 && !defined(PHP_WIN32)
+-# define LL_MASK "l"
+ # define LL_LIT(lit) lit ## L
+ #else
+-# define LL_MASK "ll"
+ # define LL_LIT(lit) lit ## LL
+ #endif
++#define LL_MASK "ll"
+ 
+ /* Firebird API has a couple of missing const decls in its API */
+ #define const_cast(s) ((char*)(s))

diff --git a/dev-lang/php/php-8.0.3.ebuild b/dev-lang/php/php-8.0.3.ebuild
index c3b57be91fa..599f1188e1c 100644
--- a/dev-lang/php/php-8.0.3.ebuild
+++ b/dev-lang/php/php-8.0.3.ebuild
@@ -151,7 +151,10 @@ BDEPEND="virtual/pkgconfig"
 
 PHP_MV="$(ver_cut 1)"
 
-PATCHES=( "${FILESDIR}/php-iodbc-header-location.patch" )
+PATCHES=(
+       "${FILESDIR}/php-iodbc-header-location.patch"
+       "${FILESDIR}/php80-firebird-warnings.patch"
+)
 
 php_install_ini() {
        local phpsapi="${1}"

Reply via email to