As seen in an instrumented build branch, at https://travis-ci.org/github/jimklimov/nut/builds/743841433#L2911 the clients/.libs/ does not contain the actual versioned SO-name for libnutclient.so.1.0.0 (C++), although e.g. a libupsclient.so.5.0.0 (plain C) is there:
2309925 4 drwxrwxr-x 2 travis travis 4096 Nov 16 01:54 ./clients/.libs
2309718 0 lrwxrwxrwx 1 travis travis 21 Nov 16 01:54 ./clients/.libs/libnutclient.so -> libnutclient.so.1.0.0
2309725 60 -rwxrwxr-x 1 travis travis 58864 Nov 16 01:54 ./clients/.libs/upsrw
2309720 4 -rw-rw-r-- 1 travis travis 370 Nov 16 01:54 ./clients/.libs/libupsclient.ver
2309133 76 -rwxrwxr-x 1 travis travis 74152 Nov 16 01:54 ./clients/.libs/libupsclient.so.5.0.0
2309938 500 -rw-rw-r-- 1 travis travis 511840 Nov 16 01:54 ./clients/.libs/nutclient.o
2309727 60 -rwxrwxr-x 1 travis travis 57552 Nov 16 01:54 ./clients/.libs/upsset.cgi
2309941 88 -rw-rw-r-- 1 travis travis 88790 Nov 16 01:54 ./clients/.libs/libupsclient.a
2309311 56 -rwxrwxr-x 1 travis travis 55296 Nov 16 01:54 ./clients/.libs/upsimage.cgi
2309927 32 -rw-rw-r-- 1 travis travis 29888 Nov 16 01:54 ./clients/.libs/upsclient.o
2308899 72 -rwxrwxr-x 1 travis travis 72920 Nov 16 01:54 ./clients/.libs/upsmon
2309947 0 lrwxrwxrwx 1 travis travis 18 Nov 16 01:54 ./clients/.libs/libnutclient.la -> ../libnutclient.la
2309635 48 -rwxrwxr-x 1 travis travis 49080 Nov 16 01:54 ./clients/.libs/upscmd
2309944 592 -rw-rw-r-- 1 travis travis 603634 Nov 16 01:54 ./clients/.libs/libnutclient.a
2309946 4 -rw-rw-r-- 1 travis travis 1047 Nov 16 01:54 ./clients/.libs/libnutclient.lai
2309932 0 lrwxrwxrwx 1 travis travis 21 Nov 16 01:54 ./clients/.libs/libupsclient.so.5 -> libupsclient.so.5.0.0
2309936 4 -rw-rw-r-- 1 travis travis 1062 Nov 16 01:54 ./clients/.libs/libupsclient.lai
2309934 0 lrwxrwxrwx 1 travis travis 21 Nov 16 01:54 ./clients/.libs/libupsclient.so -> libupsclient.so.5.0.0
2309928 4 -rw-rw-r-- 1 travis travis 327 Nov 16 01:54 ./clients/.libs/libupsclient.exp
2309937 0 lrwxrwxrwx 1 travis travis 18 Nov 16 01:54 ./clients/.libs/libupsclient.la -> ../libupsclient.la
2309719 36 -rwxrwxr-x 1 travis travis 34632 Nov 16 01:54 ./clients/.libs/upsc
2309637 40 -rwxrwxr-x 1 travis travis 40088 Nov 16 01:54 ./clients/.libs/upslog
2309196 0 lrwxrwxrwx 1 travis travis 21 Nov 16 01:54 ./clients/.libs/libnutclient.so.1 -> libnutclient.so.1.0.0
2309717 60 -rwxrwxr-x 1 travis travis 59136 Nov 16 01:54 ./clients/.libs/upsstats.cgi
As a consequence, recently updated unit-tests can not be built:
Making all in tests
make[1]: Entering directory '/home/travis/build/jimklimov/nut/tests'
/bin/bash ../libtool --tag=CXX --mode=link ccache clang++-5.0 -I../include -I/home/travis/build/jimklimov/nut/tmp/include -std=gnu++99 -std=c++11 -I/home/travis/build/jimklimov/nut/tmp/include -std=gnu++99 -std=c++11 -lcppunit -L/home/travis/build/jimklimov/nut/tmp/lib -o cppunittest cppunittest-example.o cppunittest-nutclienttest.o cppunittest-cpputest.o ../clients/libnutclient.la -lpthread
libtool: link: LD_RUN_PATH="/home/travis/build/jimklimov/nut/tmp/lib:" ccache clang++-5.0 -I../include -I/home/travis/build/jimklimov/nut/tmp/include -std=gnu++99 -std=c++11 -I/home/travis/build/jimklimov/nut/tmp/include -std=gnu++99 -std=c++11 -o .libs/cppunittest cppunittest-example.o cppunittest-nutclienttest.o cppunittest-cpputest.o -lcppunit -L/home/travis/build/jimklimov/nut/tmp/lib ../clients/.libs/libnutclient.so -lpthread
clang: error: no such file or directory: '../clients/.libs/libnutclient.so'
Makefile:703: recipe for target 'cppunittest' failed
make[1]: *** [cppunittest] Error 1
make[1]: Target 'all' not remade because of errors.
make[1]: Leaving directory '/home/travis/build/jimklimov/nut/tests'
make[1]: Entering directory '/home/travis/build/jimklimov/nut'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/home/travis/build/jimklimov/nut'
Makefile:546: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
make: Target 'all' not remade because of errors.
Command exited with non-zero status 2
Probably there is some mess-up in the Makefiles, but curiously this is the only set-up where this issue manifests ( NUT_MATRIX_TAG="gnu99-clang-5.0-nowarn-force" BUILD_TYPE=default-all-errors CFLAGS="-std=gnu99" CXXFLAGS="-std=gnu++99" CC=clang-5.0 CXX=clang++-5.0). With newer compiler and/or C standard versions, e.g. clang-8 in NUT_MATRIX_TAG="gnu17-clang-8-nowarn" BUILD_TYPE=default-all-errors CFLAGS="-std=gnu17" CXXFLAGS="-std=gnu++17" CC=clang-8 CXX=clang++-8 tests work as expected.
For now, this test case was demoted to allow_failures so it does not block testing other improvements for the effort started in #823 / #844.
As seen in an instrumented build branch, at https://travis-ci.org/github/jimklimov/nut/builds/743841433#L2911 the
clients/.libs/does not contain the actual versioned SO-name forlibnutclient.so.1.0.0(C++), although e.g. alibupsclient.so.5.0.0(plain C) is there:As a consequence, recently updated unit-tests can not be built:
Probably there is some mess-up in the Makefiles, but curiously this is the only set-up where this issue manifests (
NUT_MATRIX_TAG="gnu99-clang-5.0-nowarn-force" BUILD_TYPE=default-all-errors CFLAGS="-std=gnu99" CXXFLAGS="-std=gnu++99" CC=clang-5.0 CXX=clang++-5.0). With newer compiler and/or C standard versions, e.g.clang-8inNUT_MATRIX_TAG="gnu17-clang-8-nowarn" BUILD_TYPE=default-all-errors CFLAGS="-std=gnu17" CXXFLAGS="-std=gnu++17" CC=clang-8 CXX=clang++-8tests work as expected.For now, this test case was demoted to
allow_failuresso it does not block testing other improvements for the effort started in #823 / #844.