Looks like commit 05a8c47b9be8a6b8ffc091eab461fece9d40dcd0
(tests: Test all calls through multiple layers of filters and a plugin.)
introduced an issue.
$ git clean -dxf && autoreconf -i && ./configure && make
...
in.Tpo -c -o test_layers_plugin_la-test-layers-plugin.lo `test -f 'test-layers-plugin.c' || echo './'`test-layers-plugin.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT test_layers_plugin_la-test-layers-plugin.lo -MD -MP -MF .deps/test_layers_plugin_la-test-layers-plugin.Tpo -c test-layers-plugin.c -fPIC -DPIC -o .libs/test_layers_plugin_la-test-layers-plugin.o
test-layers-plugin.c: In function ‘test_layers_plugin_can_fua’:
test-layers-plugin.c:137:10: error: ‘NBDKIT_FUA_NATIVE’ undeclared (first use in this function); did you mean ‘NBDKIT_CXX_LANG_C’?
return NBDKIT_FUA_NATIVE;
^~~~~~~~~~~~~~~~~
NBDKIT_CXX_LANG_C
test-layers-plugin.c:137:10: note: each undeclared identifier is reported only once for each function it appears in
test-layers-plugin.c: At top level:
test-layers-plugin.c:197:4: error: ‘struct nbdkit_plugin’ has no member named ‘can_zero’; did you mean ‘can_trim’?
.can_zero = test_layers_plugin_can_zero,
^~~~~~~~
can_trim
test-layers-plugin.c:197:24: warning: initialization of ‘int (*)(void *, void *, uint32_t, uint64_t)’ {aka ‘int (*)(void *, void *, unsigned int, long unsigned int)’} from incompatible pointer type ‘int (*)(void *)’ [-Wincompatible-pointer-types]
.can_zero = test_layers_plugin_can_zero,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
test-layers-plugin.c:197:24: note: (near initialization for ‘plugin.pread’)
test-layers-plugin.c:198:4: error: ‘struct nbdkit_plugin’ has no member named ‘can_fua’; did you mean ‘can_flush’?
.can_fua = test_layers_plugin_can_fua,
^~~~~~~
can_flush
test-layers-plugin.c:198:24: warning: initialization of ‘int (*)(void *, const void *, uint32_t, uint64_t)’ {aka ‘int (*)(void *, const void *, unsigned int, long unsigned int)’} from incompatible pointer type ‘int (*)(void *)’ [-Wincompatible-pointer-types]
.can_fua = test_layers_plugin_can_fua,
^~~~~~~~~~~~~~~~~~~~~~~~~~
test-layers-plugin.c:198:24: note: (near initialization for ‘plugin.pwrite’)
test-layers-plugin.c:199:24: warning: initialization of ‘int (*)(void *, void *, uint32_t, uint64_t)’ {aka ‘int (*)(void *, void *, unsigned int, long unsigned int)’} from incompatible pointer type ‘int (*)(void *, void *, uint32_t, uint64_t, uint32_t)’ {aka ‘int (*)(void *, void *, unsigned int, long unsigned int, unsigned int)’} [-Wincompatible-pointer-types]
.pread = test_layers_plugin_pread,
^~~~~~~~~~~~~~~~~~~~~~~~
test-layers-plugin.c:199:24: note: (near initialization for ‘plugin.pread’)
test-layers-plugin.c:200:24: warning: initialization of ‘int (*)(void *, const void *, uint32_t, uint64_t)’ {aka ‘int (*)(void *, const void *, unsigned int, long unsigned int)’} from incompatible pointer type ‘int (*)(void *, const void *, uint32_t, uint64_t, uint32_t)’ {aka ‘int (*)(void *, const void *, unsigned int, long unsigned int, unsigned int)’} [-Wincompatible-pointer-types]
.pwrite = test_layers_plugin_pwrite,
^~~~~~~~~~~~~~~~~~~~~~~~~
test-layers-plugin.c:200:24: note: (near initialization for ‘plugin.pwrite’)
test-layers-plugin.c:201:24: warning: initialization of ‘int (*)(void *)’ from incompatible pointer type ‘int (*)(void *, uint32_t)’ {aka ‘int (*)(void *, unsigned int)’} [-Wincompatible-pointer-types]
.flush = test_layers_plugin_flush,
^~~~~~~~~~~~~~~~~~~~~~~~
test-layers-plugin.c:201:24: note: (near initialization for ‘plugin.flush’)
test-layers-plugin.c:202:24: warning: initialization of ‘int (*)(void *, uint32_t, uint64_t)’ {aka ‘int (*)(void *, unsigned int, long unsigned int)’} from incompatible pointer type ‘int (*)(void *, uint32_t, uint64_t, uint32_t)’ {aka ‘int (*)(void *, unsigned int, long unsigned int, unsigned int)’} [-Wincompatible-pointer-types]
.trim = test_layers_plugin_trim,
^~~~~~~~~~~~~~~~~~~~~~~
test-layers-plugin.c:202:24: note: (near initialization for ‘plugin.trim’)
test-layers-plugin.c:203:24: warning: initialization of ‘int (*)(void *, uint32_t, uint64_t, int)’ {aka ‘int (*)(void *, unsigned int, long unsigned int, int)’} from incompatible pointer type ‘int (*)(void *, uint32_t, uint64_t, uint32_t)’ {aka ‘int (*)(void *, unsigned int, long unsigned int, unsigned int)’} [-Wincompatible-pointer-types]
.zero = test_layers_plugin_zero,
^~~~~~~~~~~~~~~~~~~~~~~
test-layers-plugin.c:203:24: note: (near initialization for ‘plugin.zero’)
make[2]: *** [Makefile:1847: test_layers_plugin_la-test-layers-plugin.lo] Error 1
Nir