diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2018-09-11 12:23:50 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2018-09-11 12:23:50 +0200 |
commit | aaae9c66dbfaae8149e7848e397ce31a4ddccee4 (patch) | |
tree | cce595a5647e41571acc4ef95744924a9fde2cc0 /acinclude.m4 | |
parent | 034b7ff09143e3d86d6e4f8c15728b52b0c413d7 (diff) | |
parent | b117feeb2b545b34296f2fc492166d790610fffe (diff) | |
download | php-git-aaae9c66dbfaae8149e7848e397ce31a4ddccee4.tar.gz |
Merge branch 'PHP-7.3'
* PHP-7.3:
Fix #76510: file_exists() stopped working for phar://
Diffstat (limited to 'acinclude.m4')
-rw-r--r-- | acinclude.m4 | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index 626031c289..48724f4f0b 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1740,6 +1740,42 @@ choke me ]) dnl +dnl PHP_BROKEN_GCC_STRLEN_OPT +dnl +dnl Early releases of GCC 8 shipped with a strlen() optimization bug, so they +dnl didn't properly handle the `char val[1]` struct hack. See bug #76510. +dnl +AC_DEFUN([PHP_BROKEN_GCC_STRLEN_OPT], [ + AC_CACHE_CHECK([for broken gcc optimize-strlen],ac_cv_have_broken_gcc_strlen_opt,[ + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +struct s +{ + int i; + char c[1]; +}; +int main() +{ + struct s *s = malloc(sizeof(struct s) + 3); + s->i = 3; + strcpy(s->c, "foo"); + return strlen(s->c+1) == 2; +} +]])],[ + ac_cv_have_broken_gcc_strlen_opt=yes +],[ + ac_cv_have_broken_gcc_strlen_opt=no +],[ + ac_cv_have_broken_gcc_strlen_opt=no +])]) + if test "$ac_cv_have_broken_gcc_strlen_opt" = "yes"; then + CFLAGS="$CFLAGS -fno-optimize-strlen" + fi +]) + +dnl dnl PHP_FOPENCOOKIE dnl AC_DEFUN([PHP_FOPENCOOKIE], [ |