diff options
author | Michael Orlitzky <mjo@gentoo.org> | 2024-03-04 11:42:16 -0500 |
---|---|---|
committer | Michael Orlitzky <mjo@gentoo.org> | 2024-03-04 11:49:07 -0500 |
commit | 65a1a144e66496d746998a54d2c5ad7cf53252cb (patch) | |
tree | 411825fa790714374dcb57584d0918cef39415d4 /dev-lang | |
parent | sci-mathematics/giac: drop unused patch (diff) | |
download | gentoo-65a1a144e66496d746998a54d2c5ad7cf53252cb.tar.gz gentoo-65a1a144e66496d746998a54d2c5ad7cf53252cb.tar.bz2 gentoo-65a1a144e66496d746998a54d2c5ad7cf53252cb.zip |
dev-lang/php: some more implicit function decl fixes for 8.1.x
Closes: https://bugs.gentoo.org/925877
Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
Diffstat (limited to 'dev-lang')
-rw-r--r-- | dev-lang/php/files/php-8.1.27-implicit-decls.patch | 72 | ||||
-rw-r--r-- | dev-lang/php/php-8.1.27-r2.ebuild (renamed from dev-lang/php/php-8.1.27-r1.ebuild) | 7 |
2 files changed, 79 insertions, 0 deletions
diff --git a/dev-lang/php/files/php-8.1.27-implicit-decls.patch b/dev-lang/php/files/php-8.1.27-implicit-decls.patch new file mode 100644 index 000000000000..443b02ba17c2 --- /dev/null +++ b/dev-lang/php/files/php-8.1.27-implicit-decls.patch @@ -0,0 +1,72 @@ +From 79df2b9dcbe0388667c832b2c702ca3158330ed7 Mon Sep 17 00:00:00 2001 +From: Michael Orlitzky <michael@orlitzky.com> +Date: Mon, 4 Mar 2024 11:48:01 -0500 +Subject: [PATCH] ext/iconv/config.m4: add missing stdio.h include. + +The next generation of C compilers is going to enforce the C standard +more strictly: + + https://wiki.gentoo.org/wiki/Modern_C_porting + +One warning that will eventually become an error is +-Wimplicit-function-declaration. This is relatively easy to catch in +most code (it will fail to compile), but inside of autoconf tests it +can go unnoticed because many feature-test compilations fail by +design. For example, + + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <iconv.h>]], + [[iconv_ccs_init(NULL, NULL);]])]... + +is designed to fail if iconv_ccs_init() is not in iconv.h. On the +other hand, + + AC_RUN_IFELSE([AC_LANG_SOURCE([[ + #include <iconv.h> + int main() { + printf("%d", _libiconv_version); + return 0; + } + +should pass if _libiconv_version is defined. If the user has +-Werror=implicit-function-declaration in his CFLAGS, however, +it will not: + + $ export CFLAGS="$CFLAGS -Werror=implicit-function-declaration" + $ ./configure + ... + checking if using GNU libiconv... no + +This is because the stdio.h header that defines printf() is missing: + + conftest.c:240:3: error: implicit declaration of function 'printf' + [-Werror=implicit-function-declaration] + 240 | printf("%d", _libiconv_version); + | ^~~~~~ + conftest.c:239:1: note: include '<stdio.h>' or provide a declaration + of 'printf' + +This commit adds the include, correcting the test with any compiler +that balks at implicit function definitions. + +(Backport to php-8.1.27) + +Closes GH-10751 +--- + ext/iconv/config.m4 | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4 +index ac57c81e..b8044bf2 100644 +--- a/ext/iconv/config.m4 ++++ b/ext/iconv/config.m4 +@@ -30,6 +30,7 @@ if test "$PHP_ICONV" != "no"; then + AC_MSG_CHECKING([if using GNU libiconv]) + AC_RUN_IFELSE([AC_LANG_SOURCE([[ + #include <iconv.h> ++#include <stdio.h> + int main() { + printf("%d", _libiconv_version); + return 0; +-- +2.43.0 + diff --git a/dev-lang/php/php-8.1.27-r1.ebuild b/dev-lang/php/php-8.1.27-r2.ebuild index ee3853ec5893..38bbbc21e31c 100644 --- a/dev-lang/php/php-8.1.27-r1.ebuild +++ b/dev-lang/php/php-8.1.27-r2.ebuild @@ -149,6 +149,7 @@ PATCHES=( "${FILESDIR}/php-iodbc-header-location.patch" "${FILESDIR}/php-capstone-optional.patch" "${FILESDIR}/php-8.1.27-gcc14-libxml.patch" + "${FILESDIR}/php-8.1.27-implicit-decls.patch" ) # ARM/Windows functions that are expected to be undefined. @@ -158,6 +159,12 @@ QA_CONFIG_IMPL_DECL_SKIP=( _controlfp_s ) +# Functions from alternate iconv implementations (bug 925268) +QA_CONFIG_IMPL_DECL_SKIP+=( + iconv_ccs_init + cstoccsid +) + php_install_ini() { local phpsapi="${1}" |