On 27.08.2024 at 16:42, Calvin Buckley wrote: > On Aug 27, 2024, at 8:52 AM, Christoph M. Becker <cmbecke...@gmx.de> wrote: >> >> Might roughly be similar on AIX with "the other dynamic linking option". > > There isn't something like import libraries, but rather, the shared libs > are actually .a archive files that contain the .so to load at runtime > (of both bitnesses, as well as being able to do things like pack multiple > SOVERs), plus an import file that specifies the name of the library, the > symbols contained within, etc.
Ah, thanks! Then this is completely different to Windows. > My impression is the runtime loader/linker option basically ignores all > of that infrastructure in favour of something that works like what > commodity Unix has, trading AIX's problems with those problems (i.e. lack > of symbol namespacing). Unfortunately, I'm in a situation where I do need > symbol namespacing, so I'm starting to deal with AIX's problems instead. > Unfortunately, I'm not David Edelsohn. :) >> Well, that is not an option for any binaries we build and ship, since >> the core is not supposed to rely on any external dependencies (that's >> the reason why we still bundle libpcre2 although it is supposed to be >> available almost everywhere). > > I didn't know that; it's kinda confusing considering they're all in ext/, > and some vendor (i.e. gd, pcre), but others do not. It's only about the mandatory extensions, i.e. those you get with ./configure --disable-all (date, hash, json, pcre, random, reflection, spl and standard). The idea is to be able to have a minimal PHP build without the need to install any libraries (except, of course, libc and such). ext/gd is a different thing; the bundled libgd is only there for BC reasons (and should have been unbundled years ago, but hasn't due to missing ZMM support in libgd); on most systems you usually build against a system libgd, though. Christoph