Bug #76113 [Opn]: mbstring does not build with Oniguruma 6.8.1
Edit report at https://bugs.php.net/bug.php?id=76113&edit=1
ID: 76113
User updated by: chris at chrullrich dot net
Reported by: chris at chrullrich dot net
Summary: mbstring does not build with Oniguruma 6.8.1
Status: Open
Type: Bug
Package: mbstring related
PHP Version: 5.6.34
Block user comment: N
Private report: N
New Comment:
The oldest release I could easily find is 2.3.1, released 2004-06-17, and it has them already.
http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/distfiles/ruby/onigd2_3_1.tar.gz
Previous Comments:
------------------------------------------------------------------------
[2018-03-19 23:07:36] cmb@php.net
Thanks for reporting this issue, the detailed analysis, and for
providing a patch!
The patch looks good, but I wonder which version of Oniguruma
introduced these functions. It seems that we currently don't
explicitly check for a minimum version â which appears to be
fishy per se.
------------------------------------------------------------------------
[2018-03-19 09:23:36] chris at chrullrich dot net
Description:
------------
Oniguruma 6.8.1 moved the implementation of the regex_t type out of its public header.
ext/mbstring/php_mbregex.c:457:31: error: incomplete definition of type 'struct
php_mb_re_pattern_buffer'
if (found == FAILURE || (*rc)->options != options || (*rc)->enc != enc ||
(*rc)->syntax != syntax) {
~~~~~^
/usr/local/include/oniguruma.h:673:8: note: forward declaration of 'struct
php_mb_re_pattern_buffer'
struct re_pattern_buffer;
^
./php_onig_compat.h:4:37: note: expanded from macro 're_pattern_buffer'
#define re_pattern_buffer php_mb_re_pattern_buffer
^
ext/mbstring/php_mbregex.c:457:60: error: incomplete definition of type 'struct
php_mb_re_pattern_buffer'
if (found == FAILURE || (*rc)->options != options || (*rc)->enc != enc ||
(*rc)->syntax != syntax) {
~~~~~^
/usr/local/include/oniguruma.h:673:8: note: forward declaration of 'struct
php_mb_re_pattern_buffer'
struct re_pattern_buffer;
^
./php_onig_compat.h:4:37: note: expanded from macro 're_pattern_buffer'
#define re_pattern_buffer php_mb_re_pattern_buffer
^
ext/mbstring/php_mbregex.c:457:81: error: incomplete definition of type 'struct
php_mb_re_pattern_buffer'
if (found == FAILURE || (*rc)->options != options || (*rc)->enc != enc ||
(*rc)->syntax != syntax) {
~~~~~^
/usr/local/include/oniguruma.h:673:8: note: forward declaration of 'struct
php_mb_re_pattern_buffer'
struct re_pattern_buffer;
^
./php_onig_compat.h:4:37: note: expanded from macro 're_pattern_buffer'
#define re_pattern_buffer php_mb_re_pattern_buffer
^
3 errors generated.
*** [php_mbregex.lo] Error code 1
make[1]: stopped in ext/mbstring
1 error
The fix (see patch) is to use the appropriate API to access Oniguruma's internals.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=76113&edit=1
Thread (5 messages)