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

Reply via email to