Re: [INTERNALS-WIN] Build environment notes (single CRT)

[email protected] ("Steph Fox")
Newsgroups php.internals.win
Message-ID <00fb01c9639c$909dd2c0$3ffc1f3e@foxbox>
Pierre...

>> The _debug postfix doesn't work with 5_2 because you haven't implemented
>> support for it there (and probably shouldn't, since it will break 
>> existing
>> setups).
>
> It is exactly what I meant. The debug postfix detection is not
> implemented in 5.2 (<somelib>_debug will not be detected and not
> used).

Ah right, so we were talking at cross-purposes there. Yes, for all libraries 
other than bindlib this should be documented. (I'm assuming that we can't 
just go in and fix config.w32s in 5_2, right?)

>> It's not a case of documentation,

> It is detected at configure time and linked at build time (if
> correctly detected), this little note for the other readers, not
> necessary you as you surely know that already.

No, it isn't. Look:

var php_usual_lib_suspects = PHP_PHP_BUILD+"\\lib;..\\bindlib_w32";

should read something like:

var php_usual_lib_suspects = PHP_PHP_BUILD+"\\lib;..\\bindlib_w32\\" + 
Status;

The libraries are in ..\bindlib_w32\Release and ..\bindlib_w32\Debug 
respectively. Always were, check the old .dsp files if you don't believe me. 
I think you're getting confused because Edin added all the bindlib stuff 
(release lib only) into the-zip-that-must-not-be-mentioned - anyone using 
that setup would always get the release version. What I hadn't realized 
until now was that because the path is wrong in config.w32, the version in 
the zip-that-must-not-be-mentioned is in fact always loaded regardless - in 
other words, unless you deleted that copy, you'll have been loading the 
headers from /bindlib_w32 dir and the lib from /lib. The only way it's 
worked even in release builds is only due to the coincidence that there 
haven't been any changes in the bindlib source for a very long time! And 
debug builds have been using the wrong resolv.lib ever since we dropped 
.dsp.

> If they want to use the debug version of a library for 5.2? Yes, they
> can manually edit configure.js or rebuild the libraries they need in
> debug mode.

Point being that this particular lib is ONLY used in 5_2, not anywhere else, 
and you've changed its name to work with a system that isn't available in 
5_2.

> However, if one needs the debug version of a library, that means he is
> looking for a bug in the library itself (or to confirm that this lib
> has a bug). In this case I would first try with 5.3 to be sure that's
> the bug is actually in the library and not in PHP.

They're different runtimes, debug and release. MSVCRT and MSVCRTD, for 
example.

> That's why I suggest to simply add a note about why the
> <somelib>_debug does not work with 5.2 and why we do not provide debug
> builds of the libraries for 5.2 but for 5.3+ only.

This exchange is about bindlib_w32, which isn't even _used_ in 5.3+. Do keep 
up :)

This isn't a general rant against the _debug prefix - on the whole I think 
it's a good idea - just about this one library.

- Steph


>
> Cheers,
> -- 
> Pierre
>
> http://blog.thepimp.net | http://www.libgd.org
>
> -- 
> Windows Internals Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.