On Wed, Feb 24, 2021 at 02:17:14PM -0000, Stuart Henderson wrote:
> On 2021-02-23, Bob <obs...@protonmail.com> wrote:
> > Hi,
> >
> > I am trying to make a custom build of libpng in my home directory,
> > using a libz build that I made in my home directory also.
> >
> > Both are latest version, libpng 1.6.37 same as OpenBSD's port
> > https://cvsweb.openbsd.org/ports/graphics/png/Makefile?rev=1.125&content-type=text/x-cvsweb-markup
> > and libz the latest one they published. For zlib it's 1.2.11
> > from http://zlib.net/ from 2017, OpenBSD does not have a port but
> > base bundles a 2009 version. Since 2009, significantly an export
> > "inflateReset2" has been added.
> 
> As you have seen it is difficult to have library functions in one
> version in base and in another version built elsewhere (whether that's
> in $HOME or in ports). Ports only does this for libraries where there's
> really no other choice and where that has been done they're used *very*
> rarely (the port can then not depend on any libraries which pull in the
> library from base). Currently that is libbind (used only by asdig and
> zeek) and openssl (used as a static library by sslscan, and dynamic
> for nrpe and nsca-ng).
> 
> > I'll start with the detail problem, and discuss the reproduction at the
> > bottom:
> >
> >
> > This has brought me to the bizarre issue that the libpng build plainly
> > refuses to link to my custom libz file /home/myuser/lib/libz.so.1 .
> > Instead, it insists with linking to the OS' global
> > /usr/lib/libz.so.5.0 .
> 
> This is as expected really, it looks for the higher library version
> number.

Not really, it's more that you have to make sure to put your own directory
before the system directory, which requires a bit more magic than just -L.

(remember that linking will stop at the first directory with a satisfying
library, and link with the highest version number found in there, which
is fortunate for stuff like libtool!)

Reply via email to