[geos-devel] 3.10.0beta2

Paul Ramsey pramsey at cleverelephant.ca
Wed Oct 6 11:10:34 PDT 2021


On Sat, Oct 2, 2021 at 4:07 PM Greg Troxel <gdt at lexort.com> wrote:
>
> > Also, the tests are broken for me.   Running make check fails
> > completely, and I find in the log:

Everything works fine in MacOS, I don't have access to a broken platform to
try things out on...

Sparrow:~/Code/geos-git-build pramsey% otool -L bin/test_geos_unit
bin/test_geos_unit:
@rpath/libgeos_c.1.dylib (compatibility version 1.0.0, current version
1.16.0)
@rpath/libgeos.3.10.0.dylib (compatibility version 3.10.0, current version
3.10.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version
800.7.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
1281.0.0)

The file diffs all look reasonable to me. Some classes were added, a few
were removed.

I'm looking at the pthreads thing... there are a few tests that do
multi-threaded things to test the reentrant code bits, but the library
itself doesn't use pthreads. I'm trying to figure if/how to make sure we
aren't having it as a library dependency, it should only be a unit test
dependency.

P

> >
> > /tmp/work/geography/geos/work/geos-3.10.0beta2/bin/test_geos_unit:
Shared object "libgeos.so.3.10.0" not found
> >
> > I am running tests from the build directory before I have built a
> > package  and then replaced the existing 3.9 installation.  So in
> > /usr/pkg/lib, where the library is expected to be, there is
> > libgeos.so.3.9.0 and no 3.10.  Looking at the test program:
> >
> > $ ldd /tmp/work/geography/geos/work/geos-3.10.0beta2/bin/test_geos_unit
> > /tmp/work/geography/geos/work/geos-3.10.0beta2/bin/test_geos_unit:
> >         -lgeos_c.1 => /usr/pkg/lib/libgeos_c.so.1
> >         -lgeos-3.9.1 => /usr/pkg/lib/libgeos-3.9.1.so
> >         -lstdc++.9 => /usr/lib/libstdc++.so.9
> >         -lm.0 => /usr/lib/libm.so.0
> >         -lc.12 => /usr/lib/libc.so.12
> >         -lgcc_s.1 => /usr/lib/libgcc_s.so.1
> >         -lgeos.3.10.0 => not found
> >         -lpthread.1 => /usr/lib/libpthread.so.1
> >
> > I see it's also finding the wrong libgeos_c, so the root cause is very
> > likely not arranging a temporary library path for testing built but not
> > installed code.  autoconf/libtool did this correctly, with a scheme to
> > link test programs (and anything else) against the built but not
> > installed library, and then to relink at installation.  There are of
> > course multiple approaches, but "make check" needs to use the
> > programs/libs in the build tree, and ignore what's installed.
>
> I worked around the bug in "make check" by installing the package, and
> then building it again and running tests, so that when it links against
> the wrong library, it finds the same bits.   I was happy to see that all
> the tests passed, so there aren't any real geos bugs, just cmake/test
> bugs.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geos-devel/attachments/20211006/572a444b/attachment.html>


More information about the geos-devel mailing list