Hey.
While I am creating a small build tool and learning more about Clang/GCC and the various linkers, I came across the differences between shared/dynamic libraries, plugins and executables on the various platforms. That made me wonder, how PHP’s plugins are compiled.
For instance, if one had enable-curl=shared
turned on, with the CGI and CLI SAPI, we’d get two binaries and a shared object - a „bundle“ on OS X. But, there are two ways to compile php_curl.so :
-bundle -bundle_loader /path/to/php
or
-bundle -undefined dynamic_lookup
Both are only needed if unresolved symbols occur, though. In my test-run with a plugin framework, I ran into this issue. By Apple’s docs, one basically needs -bundle and „flags and switches that one would use during the compilation of an executable“.
Which of the above methods are mainly used for PHP’s shared extensions? I would go and try and dig my way thru Make and Autoconf/phpize - but my make-fu is far beyond what I would need here, only to find one single answer. :)
Kind regards, Ingwie