bug#70982: test suite failures on OpenBSD
Bruno Haible via bug-libtool via Bug reports for the GNU libtool shared library maintenance tool <[email protected]> Fri, 08 Nov 2024 19:56:51 +0100
| Newsgroups | gmane.comp.gnu.libtool.bugs |
|---|---|
| Message-ID | <27051137.t2INlJtCjW@nimes> |
Hi Ileana, > > * In which situations is the user expected to pass one of these options? > > - Is it only for libtool's own test suite? > > No, but I can see where I may have created that confusion. I can update > the documentation to make this more clear. > ... > No, this should be specific to "--mode=finish" and "--mode=install" for > shared libraries where the shared library cache may be updated by > finish_cmds. The command(s) should not have any effect on other libtool > modes. Documenting this would make sense. It was not clear to me. > Depending on what a package's testsuite looks like, it should > ensure that local changes to a shared library (that has previously been > installed) will be utilized when linking to an executable, instead of an > old installed version. > ... > I think --test and --check > should only be useful for checking and testing of local changes to > shared libraries, without the need to install the updated shared > library. I have only seen this as an issue with ldconfig on OpenBSD 7.5. I am still confused. On one hand, when you say "only on OpenBSD", it reminds me of the problem that I have seen repeatedly on OpenBSD over the last years (e.g. with GNU libunistring, when built without --disable-shared): If I have an older version of GNU libunistring installed (in the directory specified through --prefix), when building a newer version of GNU libunistring (i.e. "make && make check") the "make check" part fails because it apparently uses the older version. Whereas "make && make install && make check" succeeds. OpenBSD is the only ELF platform on which this 'make install' before 'make check' is (or used to be) needed. On the other hand, during "make && make check", none of the libtool modes --mode=finish and --mode=install is used. Automake does not generate invocations of "libtool --mode=finish ..." at all, and it generates invocations of "libtool --mode=install ..." only as part of 'make install', which is typically the last thing I do in a build tree. (In the build tree, doing source code modifications and "make" will regenerate the libraries using "libtool --mode=link ...", but not invoke "libtool --mode=finish ..." nor "libtool --mode=install ...".) So, it's not clear to me how your change can have any effect in a usual build tree as generated by Automake. Bruno