I am in the middle of updating geos to 3.7.0, which is straightforward. geos is written in C++. geos has a library /usr/pkg/lib/libgeos_c.so.1.11.0, which has NEEDED entries about libgeos-3.7.0.so as well as (on my system) libstdc++.so.7. The point is that libgeos_c is a C API, and that the ABI is stable. geos considers it a bug for programs to use the C++ API directly, and makes no attempt to keep the C++ ABI stable (hence the versioned name). Programs that use geos generally find -lgeos_c via geos-config, and that seems ok. However, when they use libtool to link, -lgeos gets added to the linker command line because /usr/pkg/lib/libgeos_c.la has dependency_libs='/usr/pkg/lib/libgeos.la' I realize that libtool is trying to deal with various systems, but it seems that on NetBSD and I would think on most systems these days, the requirements of libgeos_c will be resolved from the NEEDED entries in this file, and its unecessary and wrong to add in -lgeos (which gets resolved to a specific version, which then changes when geos is updated). Can anyone explain what's going on with libtool and these dependencies and what they think is correct? Does pkgsrc libtool deviate from the standard behavior in this regard?
Attachment:
signature.asc
Description: PGP signature