[php-maint] Bug#612743: php5: PHP is compiled with LFS support, but this can not be detected by extensions
Derick Rethans
debian at derickrethans.nl
Thu Feb 10 11:29:32 UTC 2011
Package: php5
Severity: normal
Tags: lfs
Hi!
I'm the author of several PHP extensions, and a user asked me to compile a
binary for him.
I've compiled the extension using a stock PHP install, and noticed that
though the extension loaded fine on Debian and Ubuntu, it did not actually
work. The exact same source code compiled on the Debian and Ubuntu systems
worked fine.
I've tracked this down to issues with reading files through PHP's
streams layer. What I strongly suspect here is that Debian's LFS patch changes
the size of the php_stream structure in a subtle way. However, from a compiled
binary I have no way of detecting whether the LFS patch was actually applied.
This makes it close to impossible to reject my extension from being loaded
and/or tell them to use a LFS-compiled version that I obviously can also
provide.
If you, as Debian PHP Maintainer, find it necessary to break PHP's default
ABI/API compatibility; could you at least reflect this in the API number so
that your pre-compiled PHP refuses to load an extension compiled with the
standard/a different ABI? You already add +lfs to the extension dir's default,
so it should be easy enough. For example, something like:
--- Zend/zend_build.h.orig 2011-02-10 11:26:12.000000000 +0000
+++ Zend/zend_build.h 2011-02-10 11:27:03.000000000 +0000
@@ -41,6 +41,10 @@
#endif
/* for private applications */
+#if _FILE_OFFSET_BITS = 64
+#define ZEND_BUILD_EXTRA ",LFS"
+#else
#define ZEND_BUILD_EXTRA
+#endif
#endif
cheers,
Derick
-- System Information:
Debian Release: squeeze/sid
APT prefers maverick-updates
APT policy: (500, 'maverick-updates'), (500, 'maverick-security'), (500, 'maverick')
Architecture: i386 (i686)
Kernel: Linux 2.6.35-25-virtual (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
More information about the pkg-php-maint
mailing list