Hi, During the build of recent nfs-utils `make check` fails with link errors. We build it in an isolated sandbox with Nix on NixOS but I tried to build it outside of a sandbox too. Attached is the build log. I've been advised to drop an email to you at [1] which was my initial guess on where to send this bug. I mentioned there it's a regression but upon further inspection this problem was there at least on 2.3.3, just masked by something else. 1: https://bugzilla.kernel.org/show_bug.cgi?id=203793 -- Nikolay.
check flags: SHELL=/nix/store/x0mlaj4z4ciycaycfwc36l1932mwywfj-bash-4.4-p23/bin/bash sbindir=\$\(out\)/bin generator_dir=\$\(out\)/etc/systemd/system-generators VERBOSE=y check Making check in support make[1]: Entering directory '/build/nfs-utils-2.3.4/support' Making check in export make[2]: Entering directory '/build/nfs-utils-2.3.4/support/export' make check-am make[3]: Entering directory '/build/nfs-utils-2.3.4/support/export' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/nfs-utils-2.3.4/support/export' make[2]: Leaving directory '/build/nfs-utils-2.3.4/support/export' Making check in include make[2]: Entering directory '/build/nfs-utils-2.3.4/support/include' Making check in nfs make[3]: Entering directory '/build/nfs-utils-2.3.4/support/include/nfs' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/nfs-utils-2.3.4/support/include/nfs' Making check in rpcsvc make[3]: Entering directory '/build/nfs-utils-2.3.4/support/include/rpcsvc' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/nfs-utils-2.3.4/support/include/rpcsvc' Making check in sys make[3]: Entering directory '/build/nfs-utils-2.3.4/support/include/sys' Making check in fs make[4]: Entering directory '/build/nfs-utils-2.3.4/support/include/sys/fs' make[4]: Nothing to be done for 'check'. make[4]: Leaving directory '/build/nfs-utils-2.3.4/support/include/sys/fs' make[4]: Entering directory '/build/nfs-utils-2.3.4/support/include/sys' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/build/nfs-utils-2.3.4/support/include/sys' make[3]: Leaving directory '/build/nfs-utils-2.3.4/support/include/sys' make[3]: Entering directory '/build/nfs-utils-2.3.4/support/include' make[3]: Leaving directory '/build/nfs-utils-2.3.4/support/include' make[2]: Leaving directory '/build/nfs-utils-2.3.4/support/include' Making check in misc make[2]: Entering directory '/build/nfs-utils-2.3.4/support/misc' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/support/misc' Making check in nfs make[2]: Entering directory '/build/nfs-utils-2.3.4/support/nfs' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/support/nfs' Making check in nsm make[2]: Entering directory '/build/nfs-utils-2.3.4/support/nsm' make check-am make[3]: Entering directory '/build/nfs-utils-2.3.4/support/nsm' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/nfs-utils-2.3.4/support/nsm' make[2]: Leaving directory '/build/nfs-utils-2.3.4/support/nsm' Making check in nfsidmap make[2]: Entering directory '/build/nfs-utils-2.3.4/support/nfsidmap' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/support/nfsidmap' make[2]: Entering directory '/build/nfs-utils-2.3.4/support' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/support' make[1]: Leaving directory '/build/nfs-utils-2.3.4/support' Making check in tools make[1]: Entering directory '/build/nfs-utils-2.3.4/tools' Making check in locktest make[2]: Entering directory '/build/nfs-utils-2.3.4/tools/locktest' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/tools/locktest' Making check in rpcdebug make[2]: Entering directory '/build/nfs-utils-2.3.4/tools/rpcdebug' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/tools/rpcdebug' Making check in nlmtest make[2]: Entering directory '/build/nfs-utils-2.3.4/tools/nlmtest' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/tools/nlmtest' Making check in mountstats make[2]: Entering directory '/build/nfs-utils-2.3.4/tools/mountstats' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/tools/mountstats' Making check in nfs-iostat make[2]: Entering directory '/build/nfs-utils-2.3.4/tools/nfs-iostat' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/tools/nfs-iostat' Making check in nfsconf make[2]: Entering directory '/build/nfs-utils-2.3.4/tools/nfsconf' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/tools/nfsconf' make[2]: Entering directory '/build/nfs-utils-2.3.4/tools' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/tools' make[1]: Leaving directory '/build/nfs-utils-2.3.4/tools' Making check in utils make[1]: Entering directory '/build/nfs-utils-2.3.4/utils' Making check in exportfs make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/exportfs' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/exportfs' Making check in mountd make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/mountd' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/mountd' Making check in nfsd make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/nfsd' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/nfsd' Making check in nfsstat make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/nfsstat' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/nfsstat' Making check in showmount make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/showmount' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/showmount' Making check in statd make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/statd' make check-am make[3]: Entering directory '/build/nfs-utils-2.3.4/utils/statd' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/nfs-utils-2.3.4/utils/statd' make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/statd' Making check in idmapd make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/idmapd' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/idmapd' Making check in nfsidmap make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/nfsidmap' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/nfsidmap' Making check in blkmapd make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/blkmapd' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/blkmapd' Making check in gssd make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/gssd' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/gssd' Making check in mount make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/mount' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/mount' Making check in nfsdcld make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/nfsdcld' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/nfsdcld' Making check in nfsdcltrack make[2]: Entering directory '/build/nfs-utils-2.3.4/utils/nfsdcltrack' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils/nfsdcltrack' make[2]: Entering directory '/build/nfs-utils-2.3.4/utils' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/build/nfs-utils-2.3.4/utils' make[1]: Leaving directory '/build/nfs-utils-2.3.4/utils' Making check in linux-nfs make[1]: Entering directory '/build/nfs-utils-2.3.4/linux-nfs' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/build/nfs-utils-2.3.4/linux-nfs' Making check in tests make[1]: Entering directory '/build/nfs-utils-2.3.4/tests' Making check in nsm_client make[2]: Entering directory '/build/nfs-utils-2.3.4/tests/nsm_client' make check-am make[3]: Entering directory '/build/nfs-utils-2.3.4/tests/nsm_client' make nsm_client make[4]: Entering directory '/build/nfs-utils-2.3.4/tests/nsm_client' gcc -DHAVE_CONFIG_H -I. -I../../support/include -I/nix/store/g7npajykv5jrap80a1ldsnmvr4lyr7ap-libtirpc-1.1.4-dev/include/tirpc -D_GNU_SOURCE -pipe -Wall -Wextra -Werror=strict-prototypes -Werror=missing-prototypes -Werror=missing-declarations -Werror=format=2 -Werror=undef -Werror=missing-include-dirs -Werror=strict-aliasing=2 -Werror=init-self -Werror=implicit-function-declaration -Werror=return-type -Werror=switch -Werror=overflow -Werror=parentheses -Werror=aggregate-return -Werror=unused-result -Wno-cast-function-type -fno-strict-aliasing -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -c -o nlm_sm_inter_clnt.o nlm_sm_inter_clnt.c gcc -DHAVE_CONFIG_H -I. -I../../support/include -I/nix/store/g7npajykv5jrap80a1ldsnmvr4lyr7ap-libtirpc-1.1.4-dev/include/tirpc -D_GNU_SOURCE -pipe -Wall -Wextra -Werror=strict-prototypes -Werror=missing-prototypes -Werror=missing-declarations -Werror=format=2 -Werror=undef -Werror=missing-include-dirs -Werror=strict-aliasing=2 -Werror=init-self -Werror=implicit-function-declaration -Werror=return-type -Werror=switch -Werror=overflow -Werror=parentheses -Werror=aggregate-return -Werror=unused-result -Wno-cast-function-type -fno-strict-aliasing -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -c -o nlm_sm_inter_svc.o nlm_sm_inter_svc.c nlm_sm_inter_svc.c:20:1: warning: no previous prototype for 'nlm_sm_prog_3' [-Wmissing-prototypes] nlm_sm_prog_3(struct svc_req *rqstp, register SVCXPRT *transp) ^~~~~~~~~~~~~ nlm_sm_inter_svc.c:61:1: warning: no previous prototype for 'nlm_sm_prog_4' [-Wmissing-prototypes] nlm_sm_prog_4(struct svc_req *rqstp, register SVCXPRT *transp) ^~~~~~~~~~~~~ cc1: warning: unrecognized command line option '-Wno-cast-function-type' gcc -DHAVE_CONFIG_H -I. -I../../support/include -I/nix/store/g7npajykv5jrap80a1ldsnmvr4lyr7ap-libtirpc-1.1.4-dev/include/tirpc -D_GNU_SOURCE -pipe -Wall -Wextra -Werror=strict-prototypes -Werror=missing-prototypes -Werror=missing-declarations -Werror=format=2 -Werror=undef -Werror=missing-include-dirs -Werror=strict-aliasing=2 -Werror=init-self -Werror=implicit-function-declaration -Werror=return-type -Werror=switch -Werror=overflow -Werror=parentheses -Werror=aggregate-return -Werror=unused-result -Wno-cast-function-type -fno-strict-aliasing -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -c -o nlm_sm_inter_xdr.o nlm_sm_inter_xdr.c nlm_sm_inter_xdr.c: In function 'xdr_nlm_sm_notify': nlm_sm_inter_xdr.c:13:6: warning: unused variable 'i' [-Wunused-variable] int i; ^ nlm_sm_inter_xdr.c:11:20: warning: unused variable 'buf' [-Wunused-variable] register int32_t *buf; ^~~ nlm_sm_inter_xdr.c: At top level: cc1: warning: unrecognized command line option '-Wno-cast-function-type' gcc -DHAVE_CONFIG_H -I. -I../../support/include -I/nix/store/g7npajykv5jrap80a1ldsnmvr4lyr7ap-libtirpc-1.1.4-dev/include/tirpc -D_GNU_SOURCE -pipe -Wall -Wextra -Werror=strict-prototypes -Werror=missing-prototypes -Werror=missing-declarations -Werror=format=2 -Werror=undef -Werror=missing-include-dirs -Werror=strict-aliasing=2 -Werror=init-self -Werror=implicit-function-declaration -Werror=return-type -Werror=switch -Werror=overflow -Werror=parentheses -Werror=aggregate-return -Werror=unused-result -Wno-cast-function-type -fno-strict-aliasing -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -c -o nsm_client.o nsm_client.c nsm_client.c: In function 'hex2bin': nsm_client.c:104:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (i = 0; *src && i < dstlen; i++) { ^ nsm_client.c: In function 'bin2hex': nsm_client.c:122:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (i = 0; i < srclen; i++) ^ nsm_client.c: In function 'sim_killer': nsm_client.c:430:28: warning: unused parameter 'sig' [-Wunused-parameter] static void sim_killer(int sig) ^~~ nsm_client.c: In function 'nlm_sm_notify_4_svc': nsm_client.c:450:71: warning: unused parameter 'rqstp' [-Wunused-parameter] void *nlm_sm_notify_4_svc(struct nlm_sm_notify *argp, struct svc_req *rqstp) ^~~~~ nsm_client.c: In function 'main': nsm_client.c:143:4: warning: this statement may fall through [-Wimplicit-fallthrough=] strncpy(host, optarg, sizeof(host)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nsm_client.c:144:3: note: here case 'n': ^~~~ nsm_client.c:145:4: warning: this statement may fall through [-Wimplicit-fallthrough=] strncpy(my_name, optarg, sizeof(my_name)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nsm_client.c:146:3: note: here case 'P': ^~~~ nsm_client.c:147:12: warning: this statement may fall through [-Wimplicit-fallthrough=] my_prog = atoi(optarg); ~~~~~~~~^~~~~~~~~~~~~~ nsm_client.c:148:3: note: here case 'v': ^~~~ nsm_client.c: At top level: cc1: warning: unrecognized command line option '-Wno-cast-function-type' /nix/store/x0mlaj4z4ciycaycfwc36l1932mwywfj-bash-4.4-p23/bin/bash ../../libtool --tag=CC --mode=link gcc -pipe -Wall -Wextra -Werror=strict-prototypes -Werror=missing-prototypes -Werror=missing-declarations -Werror=format=2 -Werror=undef -Werror=missing-include-dirs -Werror=strict-aliasing=2 -Werror=init-self -Werror=implicit-function-declaration -Werror=return-type -Werror=switch -Werror=overflow -Werror=parentheses -Werror=aggregate-return -Werror=unused-result -Wno-cast-function-type -fno-strict-aliasing -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -o nsm_client nlm_sm_inter_clnt.o nlm_sm_inter_svc.o nlm_sm_inter_xdr.o nsm_client.o ../../support/nfs/.libs/libnfs.a ../../support/nsm/libnsm.a -lcap -L/nix/store/6ab4zf1x3n5v8z4x7rzw166zyv4ygy67-libtirpc-1.1.4/lib -ltirpc -lresolv libtool: link: gcc -pipe -Wall -Wextra -Werror=strict-prototypes -Werror=missing-prototypes -Werror=missing-declarations -Werror=format=2 -Werror=undef -Werror=missing-include-dirs -Werror=strict-aliasing=2 -Werror=init-self -Werror=implicit-function-declaration -Werror=return-type -Werror=switch -Werror=overflow -Werror=parentheses -Werror=aggregate-return -Werror=unused-result -Wno-cast-function-type -fno-strict-aliasing -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -o nsm_client nlm_sm_inter_clnt.o nlm_sm_inter_svc.o nlm_sm_inter_xdr.o nsm_client.o ../../support/nfs/.libs/libnfs.a ../../support/nsm/libnsm.a -lcap -L/nix/store/6ab4zf1x3n5v8z4x7rzw166zyv4ygy67-libtirpc-1.1.4/lib /nix/store/6ab4zf1x3n5v8z4x7rzw166zyv4ygy67-libtirpc-1.1.4/lib/libtirpc.so -lresolv -Wl,-rpath -Wl,/nix/store/6ab4zf1x3n5v8z4x7rzw166zyv4ygy67-libtirpc-1.1.4/lib -Wl,-rpath -Wl,/nix/store/6ab4zf1x3n5v8z4x7rzw166zyv4ygy67-libtirpc-1.1.4/lib make[4]: Leaving directory '/build/nfs-utils-2.3.4/tests/nsm_client' make[3]: Leaving directory '/build/nfs-utils-2.3.4/tests/nsm_client' make[2]: Leaving directory '/build/nfs-utils-2.3.4/tests/nsm_client' make[2]: Entering directory '/build/nfs-utils-2.3.4/tests' make statdb_dump make[3]: Entering directory '/build/nfs-utils-2.3.4/tests' gcc -DHAVE_CONFIG_H -I. -I../support/include -I/nix/store/g7npajykv5jrap80a1ldsnmvr4lyr7ap-libtirpc-1.1.4-dev/include/tirpc -D_GNU_SOURCE -pipe -Wall -Wextra -Werror=strict-prototypes -Werror=missing-prototypes -Werror=missing-declarations -Werror=format=2 -Werror=undef -Werror=missing-include-dirs -Werror=strict-aliasing=2 -Werror=init-self -Werror=implicit-function-declaration -Werror=return-type -Werror=switch -Werror=overflow -Werror=parentheses -Werror=aggregate-return -Werror=unused-result -Wno-cast-function-type -fno-strict-aliasing -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -c -o statdb_dump.o statdb_dump.c statdb_dump.c: In function 'dump_host': statdb_dump.c:38:17: warning: unused parameter 'timestamp' [-Wunused-parameter] const time_t timestamp) ^~~~~~~~~ statdb_dump.c: In function 'main': statdb_dump.c:91:10: warning: unused parameter 'argc' [-Wunused-parameter] main(int argc, char **argv) ^~~~ statdb_dump.c: At top level: cc1: warning: unrecognized command line option '-Wno-cast-function-type' /nix/store/x0mlaj4z4ciycaycfwc36l1932mwywfj-bash-4.4-p23/bin/bash ../libtool --tag=CC --mode=link gcc -pipe -Wall -Wextra -Werror=strict-prototypes -Werror=missing-prototypes -Werror=missing-declarations -Werror=format=2 -Werror=undef -Werror=missing-include-dirs -Werror=strict-aliasing=2 -Werror=init-self -Werror=implicit-function-declaration -Werror=return-type -Werror=switch -Werror=overflow -Werror=parentheses -Werror=aggregate-return -Werror=unused-result -Wno-cast-function-type -fno-strict-aliasing -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -o statdb_dump statdb_dump.o ../support/nfs/.libs/libnfs.a ../support/nsm/libnsm.a -lcap -lresolv libtool: link: gcc -pipe -Wall -Wextra -Werror=strict-prototypes -Werror=missing-prototypes -Werror=missing-declarations -Werror=format=2 -Werror=undef -Werror=missing-include-dirs -Werror=strict-aliasing=2 -Werror=init-self -Werror=implicit-function-declaration -Werror=return-type -Werror=switch -Werror=overflow -Werror=parentheses -Werror=aggregate-return -Werror=unused-result -Wno-cast-function-type -fno-strict-aliasing -Werror=format-overflow=2 -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=misleading-indentation -g -O2 -o statdb_dump statdb_dump.o ../support/nfs/.libs/libnfs.a ../support/nsm/libnsm.a -lcap -lresolv /nix/store/2dfjlvp38xzkyylwpavnh61azi0d168b-binutils-2.31.1/bin/ld: ../support/nsm/libnsm.a(file.o): in function `nsm_make_pathname': /build/nfs-utils-2.3.4/support/nsm/file.c:174: undefined reference to `generic_make_pathname' /nix/store/2dfjlvp38xzkyylwpavnh61azi0d168b-binutils-2.31.1/bin/ld: /build/nfs-utils-2.3.4/support/nsm/file.c:174: undefined reference to `generic_make_pathname' /nix/store/2dfjlvp38xzkyylwpavnh61azi0d168b-binutils-2.31.1/bin/ld: /build/nfs-utils-2.3.4/support/nsm/file.c:174: undefined reference to `generic_make_pathname' /nix/store/2dfjlvp38xzkyylwpavnh61azi0d168b-binutils-2.31.1/bin/ld: ../support/nsm/libnsm.a(file.o): in function `nsm_setup_pathnames': /build/nfs-utils-2.3.4/support/nsm/file.c:279: undefined reference to `generic_setup_basedir' collect2: error: ld returned 1 exit status