Marcus Boerger wrote:
> Hello Andi,
> 
>   most struct sizes do not matter in the windows API (becasue it takes care
> of that). The problem actually lies in the POSIX stuff and the modified
> stuff as well as the new *_r() and *_l() and what not functions that do not
> exist in the older functions. A thing that hurts first is the memory
> allocation. Basically this boils down to that you have to bind statically
> and may not share any malloc block to get freed in the other code. Between
> VC6, 2002, 2003, 2005 I had various attempts of getting cross build
> libs/binaries work and never had real success (and don't ask why I tried it).

It works very well for modules which are well-partitioned.  E.g. if the same
module frees all of it's own memory (as httpd will do through APR for all
apr allocations) life is happy.  When you pass results that the callee is
intended to free() when they are finished with the data, things will explode.

For example, mod_aspdotnet always needed to be compiled in a C++.NET managed
app, and was susceptible to this sort of issue running on a VC6 build of the
httpd library; but it never had a problem because it did all of the
httpd-oriented allocations from apr_palloc calls.

What will trip us all up is the fact that we all tightly bind to openssl
in particular.  That's a mess all it's own if compiled to a different CRT.

Bill

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to