I am trying to build php 5.2 on Windows with Visual. So far I managed to
build everything except for libxml2 dependencies, which do not seem to
work. So could anyone please clarify the following matters:
- What libxml2 version is required for 5.2 build?
- Should 5.2 build use static or dynamic (dll) version of libxml2?
- libxml.c seems to use symbol xmlDllMain - which is built in libxml2
only when LIBXML_STATIC_FOR_DLL symbol is defined, however standard
builds of libxml2 never define this symbol, at least in latest version
2.6.26. - General question - PHP 5 requires a number of libraries that PHP 4
did not, such as iconv, libxml2, etc. However, these libraries are not
included in win32build package, and also binaris available online not
always work cleanly with PHP. Would not it be good to update this
package with all binaries needed to build standard PHP 5?
--
Stanislav Malyshev, Zend Products Engineer
stas@zend.com http://www.zend.com/
Stanislav Malyshev wrote:
I am trying to build php 5.2 on Windows with Visual. So far I managed to
build everything except for libxml2 dependencies, which do not seem to
work. So could anyone please clarify the following matters:
- What libxml2 version is required for 5.2 build?
2.6.26 built using the LIBXML_STATIC_FOR_DLL flag.
- Should 5.2 build use static or dynamic (dll) version of libxml2?
It should be using the static version included from:
http://ctindustries.net/libxml/. The library was not renamed as to
minimize the change.
- libxml.c seems to use symbol xmlDllMain - which is built in libxml2
only when LIBXML_STATIC_FOR_DLL symbol is defined, however standard
builds of libxml2 never define this symbol, at least in latest version
2.6.26.
I am working on getting this lib built by default within the standard
release. At that time, I will change the required lib as I have proposed
to name it libxml2_a_dll.lib.
- General question - PHP 5 requires a number of libraries that PHP 4
did not, such as iconv, libxml2, etc. However, these libraries are not
included in win32build package, and also binaris available online not
always work cleanly with PHP. Would not it be good to update this
package with all binaries needed to build standard PHP 5?
This would require the win32build package to be versioned so that the
correct version of libxml2 is used (needs to support the symbols being
exported from the .def file).
Rob
Hi!
Thanks for the quick answer!
2.6.26 built using the LIBXML_STATIC_FOR_DLL flag.
Ehm, ok. The problem is that it is not possible to define this flag in
any way but by hand-editing makefile. Which reinforces my point about
keeping working one in win32build zip.
It should be using the static version included from:
http://ctindustries.net/libxml/. The library was not renamed as to
minimize the change.
This URL does not seem to be alive, anyway - what is this URL? It's not
standard libxml2 place - where one finds it out (except for asking on
the list each time one want to build PHP ;)
I am working on getting this lib built by default within the standard
release. At that time, I will change the required lib as I have
proposed to name it libxml2_a_dll.lib.
Please do not forget to update .dsp files then.
This would require the win32build package to be versioned so that the
correct version of libxml2 is used (needs to support the symbols being
exported from the .def file).
Does it mean older PHP versions won't build with newer libxml? Ouch.
Then I guess we need versioned files. Because right now building 5.2 on
windows is very non-obvious to say the least and there's no reason why
it should stay that way. Anyway, since older version did not have libxml
at all, I think it won't be too bad adding one,
--
Stanislav Malyshev, Zend Products Engineer
stas@zend.com http://www.zend.com/
Stanislav Malyshev wrote:
Hi!
Thanks for the quick answer!2.6.26 built using the LIBXML_STATIC_FOR_DLL flag.
Ehm, ok. The problem is that it is not possible to define this flag in
any way but by hand-editing makefile. Which reinforces my point about
keeping working one in win32build zip.
Right. I have a patch that I asked some of the people who distribute
windows builds of libxml2 to take a look at so that the lib gets built
by default.
It should be using the static version included from:
http://ctindustries.net/libxml/. The library was not renamed as to
minimize the change.This URL does not seem to be alive, anyway - what is this URL? It's not
standard libxml2 place - where one finds it out (except for asking on
the list each time one want to build PHP ;)
It should be as i just checked it. It contains the builds I have been
maintaining for the past few years now and the ones Edin uses for the
windows builds. The libxslt build there has been required from day one
cause it a customized build. It's just recent that the libxml2 build is
now non-standard as well.
At that URL you should find both release and debug builds of libxml2 and
libxslt specifically for building with PHP.
I am working on getting this lib built by default within the standard
release. At that time, I will change the required lib as I have
proposed to name it libxml2_a_dll.lib.Please do not forget to update .dsp files then.
This would require the win32build package to be versioned so that the
correct version of libxml2 is used (needs to support the symbols being
exported from the .def file).Does it mean older PHP versions won't build with newer libxml? Ouch.
Then I guess we need versioned files. Because right now building 5.2 on
windows is very non-obvious to say the least and there's no reason why
it should stay that way. Anyway, since older version did not have libxml
at all, I think it won't be too bad adding one,
Older versions will still build with the standard libxml2 builds, just
not the ones I provide. They will compile, but the thread cleanup
handling will be a bit pooched. Best I could do if this is absolutely
necessary is to build and provide all 3 libs and change the code on the
recent branches (we've change 6, 5.2 and domxml in 4.4) to use
libxml2_a_dll.lib (my proposed name for the new library).
Rob
Right. I have a patch that I asked some of the people who distribute
windows builds of libxml2 to take a look at so that the lib gets built
by default.
BTW: standard windows build of libxml2 (one advertised on their
homepage) is not usable with Visual Studio 6 - it is built with VS7
which has different library symbols.
It should be as i just checked it. It contains the builds I have been
Yes, it works now, probably was some transient problem in my network. I
checked and the build is OK with your library, thanks.