-
Notifications
You must be signed in to change notification settings - Fork 2k
Use bundled pcrelib instead of system library #495
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
It still fails on s390x. Most likely the comment is wrong about it being too old, but the line is correct that the bundled prce does not build on s390x. In file included from /usr/src/php/ext/pcre/pcrelib/pcre_jit_compile.c:62:0:
/usr/src/php/ext/pcre/pcrelib/sljit/sljitLir.c:1718:49: error: conflicting types for 'sljit_create_compiler'
SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void)
^
In file included from /usr/src/php/ext/pcre/pcrelib/sljit/sljitLir.c:27:0,
from /usr/src/php/ext/pcre/pcrelib/pcre_jit_compile.c:62:
/usr/src/php/ext/pcre/pcrelib/sljit/sljitLir.h:420:49: note: previous declaration of 'sljit_create_compiler' was here
SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void *allocator_data);
^
/usr/src/php/ext/pcre/pcrelib/pcre_jit_compile.c:65:2: error: #error Unsupported architecture
#error Unsupported architecture
^
/usr/src/php/ext/pcre/pcrelib/pcre_jit_compile.c: In function '_pcre_jit_compile':
/usr/src/php/ext/pcre/pcrelib/pcre_jit_compile.c:10012:12: error: too many arguments to function 'sljit_create_compiler'
compiler = sljit_create_compiler(NULL);
^
In file included from /usr/src/php/ext/pcre/pcrelib/pcre_jit_compile.c:62:0:
/usr/src/php/ext/pcre/pcrelib/sljit/sljitLir.c:1718:49: note: declared here
SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void)
^
In file included from /usr/src/php/ext/pcre/pcrelib/sljit/sljitLir.c:27:0,
from /usr/src/php/ext/pcre/pcrelib/pcre_jit_compile.c:62:
/usr/src/php/ext/pcre/pcrelib/pcre_jit_compile.c: At top level:
/usr/src/php/ext/pcre/pcrelib/sljit/sljitLir.h:438:31: warning: 'sljit_set_compiler_memory_error' used but never defined
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_compiler_memory_error(struct sljit_compiler *compiler);
^
/bin/bash /usr/src/php/libtool --silent --preserve-dup-deps --mode=compile cc -DHAVE_CONFIG_H -I/usr/src/php/ext/pcre/pcrelib -Iext/pcre/ -I/usr/src/php/ext/pcre/ -DPHP_ATOM_INC -I/usr/src/php/include -I/usr/src/php/main -I/usr/src/php -I/usr/src/php/ext/date/lib -I/usr/src/php/ext/ereg/regex -I/usr/include/libxml2 -I/usr/src/php/ext/mbstring/oniguruma -I/usr/src/php/ext/mbstring/libmbfl -I/usr/src/php/ext/mbstring/libmbfl/mbfl -I/usr/src/php/ext/sqlite3/libsqlite -I/usr/src/php/TSRM -I/usr/src/php/Zend -fstack-protector-strong -fpic -fpie -O2 -I/usr/include -fstack-protector-strong -fpic -fpie -O2 -fvisibility=hidden -c /usr/src/php/ext/pcre/php_pcre.c -o ext/pcre/php_pcre.lo
Makefile:544: recipe for target 'ext/pcre/pcrelib/pcre_jit_compile.lo' failed
make: *** [ext/pcre/pcrelib/pcre_jit_compile.lo] Error 1 Can you elaborate on the "provides serious trouble with Typo3-8"? |
Sure: After installing a fresh and current Typo3 v8 LTS version 8.7.6 (haven´t tried the new release 8.7.7 from yesterday, but former versions also showed this behavior) the php thread aborts with the following error msg:
A Google Search provided this result: oerdnj/deb.sury.org#353 After manual switch to the bundled pcrelib version 8.38 in the Dockerfile php:7.1-fpm and rebuilding the image, everything works fine. How about generally switching to the bundled pcrelib version and implement am exception for s390x? |
I really don't want to splinter how the image works on different architectures. Without heavy debugging to patch the bundled pcrelib source, it might make more sense to migrate all the php images to Debian Stretch in order to get newer system libraries like pcre. |
Totally agree with you. |
According to the pcere-jit manpage I was able to find the only supported architectures via auto-config are:
Suggest --without-pcre-jit as a build flag instead of --with-pcre-regex=/usr , since jit was turned on by default in the newer versions so you'll get the up-to-date included version (albeit without jit support). It will likely remove problems building on s390x as well, I don't think the normal one is platform-limited. |
Debian Jessie provides libpcre3-2:8.35-3.3+deb8u4, which is older than the currently bundled versions in PHP 5.6, 7.0, and 7.1, which is 8.38.
There is the following comment in the Dockerfile-debian.template:
# bundled pcre is too old for s390x (which isn't exactly a good sign)
I do not know if this still applies, but pcre-8.35 provides serious trouble, e.g. with Typo3-8.
I would like suggest to remove the lines 11, 129-133 from .Dockerfile-debian.template.
The text was updated successfully, but these errors were encountered: