Linking fails with "undefined reference to gnutls..."

When I build a project that depends on libnfs, I get linker errors:

[...]
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../lib/libnfs.so: undefined reference to `gnutls_certificate_set_x509_key_file'

I think libnfs should probably link to gnutls, but it doesn't:

$ ldd /lib/libnfs.so
	linux-vdso.so.1 (0x0000777d2fdc3000)
	libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x0000777d2fcd7000)
	libc.so.6 => /usr/lib/libc.so.6 (0x0000777d2fae7000)
	libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x0000777d2fa22000)
	libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x0000777d2f9f5000)
	libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x0000777d2f9ef000)
	libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x0000777d2f9e1000)
	libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x0000777d2f9d8000)
	libresolv.so.2 => /usr/lib/libresolv.so.2 (0x0000777d2f9c6000)
	/usr/lib64/ld-linux-x86-64.so.2 (0x0000777d2fdc5000)

Upstream seems to be fiddling with this:

https://github.com/sahlberg/libnfs/commit/0d4b18109630751a0e646376c3565f0befeed0fa

https://github.com/sahlberg/libnfs/commit/d205297a10bf8d7f8846bf42f0ed618543a561a9

so possibly an upstream bug.

When I build libnfs from upstream locally on arch, I get this result:

$ cmake -B build . -G Ninja && ninja -C build
-- The C compiler identification is GNU 15.1.1
[...]
-- Performing Test HAVE_GNUTLS_TRANSPORT_IS_KTLS_ENABLED
-- Performing Test HAVE_GNUTLS_TRANSPORT_IS_KTLS_ENABLED - Success
[...]
-- Found GnuTLS: /usr/lib/libgnutls.so (found suitable version "3.8.9", minimum required is "3.4.6")
-- Looking for gnutls/gnutls.h
-- Looking for gnutls/gnutls.h - found
-- Looking for linux/tls.h
-- Looking for linux/tls.h - found
-- Using /usr/lib/libgnutls.so
-- Configuring done (3.7s)
-- Generating done (0.0s)
-- Build files have been written to: ~/work/foss/libnfs/build
ninja: Entering directory `build'
[29/29] Creating library symlink lib/libnfs.so
$ ldd build/lib/libnfs.so 
	linux-vdso.so.1 (0x0000760b6f7e7000)
	libgnutls.so.30 => /usr/lib/libgnutls.so.30 (0x0000760b6f400000)
[...]
$ grep ^Libs build/libnfs.pc
Libs: -L${libdir} -lnfs /usr/lib/libgnutls.so

gnutls is linked properly, but the pcfile looks odd.

Edited by Ronan Pigott