On 2021-11-14 at 05:53:21 UTC-0500 (Sun, 14 Nov 2021 11:53:21 +0100)
Gerben Wierda via macports-users <gerben.wie...@rna.nl>
is rumored to have said:

I was just curious: why does the libsdl2 port which is at version 2.0.16 install 2.0.0 libraries? How does that happen? Just learning.

I assume you mean the fact that the actual dylib file is named /opt/local/lib/libSDL2-2.0.0.dylib

It is a norm for dynamically loaded libraries to include a symlink with their base name (i.e. /opt/local/lib/libSDL2.dylib) and sometimes additional symlinks with partial versions in their names, with the versions being indicators of binary compatibility rather than whole-project code revision. This allows for multiple incompatible versions of the same shared library to be installed simultaneously, with the runtime loader picking which version to attempt to load by the name linked in the executable. This is a pattern/norm, not a fixed standard, so exactly how a specific library handles the possibility of future version incompatibility can vary a bit. The libsdl2 devs have apparently decided to leave the name of the real library with the lowest version that remains compatible with the current version rather than doing anything more complex. Others (e.g. pth) use distinct versioning for their library names.


--
Bill Cole
b...@scconsult.com or billc...@apache.org
(AKA @grumpybozo and many *@billmail.scconsult.com addresses)
Not Currently Available For Hire

Reply via email to