On 27.08.2024 at 16:42, Calvin Buckley wrote:
> On Aug 27, 2024, at 8:52 AM, Christoph M. Becker <[email protected]> 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