A couple of shared dependencies that aren't quite right in 4.3.1 wrt zlib and pcre

php.internals

Michael Loftis

23 years ago
In main/SAPI.c on lines 33,524, and 672 PHP checks for HAVE_ZLIB when it needs to check for HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) because otherwise we now get missing symbols when linking. This makes --with-zlib=shared impossible. ext/standard/image.c makes similar mistake(s) and who knows what else... Theres a similar issue with PCRE havign the same problems. Thing is I see no notes anywhere about building them shared being deprecated or broken.
-- Michael Loftis Modwest Sr. Systems Administrator Powerful, Affordable Web Hosting

Wez Furlong

23 years ago
There are such notes, but in the php-dev mailing list archives. It is not recommended to build zlib or pcre as shared extensions, as it will disable some features of the core. If you are cooking up a build for shared hosting, the following extensions should be built as static extensions (if you are planning to deploy them at all) in order to retain maximum fuctionality: zlib pcre openssl --Wez. On Fri, 18 Apr 2003, Michael Loftis wrote:

Michael Loftis

23 years ago
The problem is it's already deployed in a configuration that's worked in all previous versions. I'm reluctant to break this because it means changing thousands of users configuration settings. Either way though the build process needs fixing, either making them not available for shared build, or doing the right thing when someone specifically asks for shared build (IE --enable-all=shared will still cause static compile, but --enable-all=shared and --with-zlib=shared will cause a shared object). --On Saturday, April 19, 2003 11:43 AM +0100 Wez Furlong <wez@thebrainroom.com> wrote:

Sascha Schumann

23 years ago
> Either way though the build process needs fixing, either making them not > available for shared build, or doing the right thing when someone > specifically asks for shared build (IE --enable-all=shared will still cause > static compile, but --enable-all=shared and --with-zlib=shared will cause a > shared object).
Actually, the code which currently uses preprocessor checks for optionally enabling code should provide hooks which can be overridden by the extension's code. All other proposals so far break one way or the other. - Sascha

Brian J. France

23 years ago
Can you make sure I am not missing something? The only thing those extensions change if compiled shared is: zlib: zlib.output_compression may not work correctly openssl: I don't see anything pcre: in safe-mode how the WWW-Authenticate header is handled differently Thanks, Brian On Sat, 19 Apr 2003 11:43:47 +0100 (BST), Wez Furlong wrote:

Michael Loftis

23 years ago
for pcre there are two or three functions in ext/standard/aggregate.c that use /depend on it. --On Sunday, April 20, 2003 3:08 PM -0700 "Brian J. France" <list@firehawksystems.com> wrote:

Wez Furlong

23 years ago
On Sun, 20 Apr 2003, Brian J. France wrote:
> Can you make sure I am not missing something? The only thing those extensions > change if compiled shared is: > > zlib: > zlib.output_compression may not work correctly > > openssl: > I don't see anything
https:// and ssl:// stream support. This dependency has been resolved in PHP5.
> pcre: > in safe-mode how the WWW-Authenticate header is handled differently
aggregation makes use of pcre also. --Wez.