Hello,
When trying to update Gnulib submodule in GnuTLS, I came across this error:
close.c: In function 'rpl_close':
close.c:71:5: error: implicit declaration of function '_gl_unregister_fd'
[-Wimplicit-function-declaration]
71 | _gl_unregister_fd (fd);
| ^~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:3602: libgnu_la-close.lo] Error 1
Looks like REPLACE_FCHDIR is defined as 1, while fchdir implementation
is not provided by Gnulib (@GNULIB_FCHDIR@ expands to 0, and fchdir.c is
not added to the library sources in the genenerated Makefile).
I haven't managed to minimize the reproducer, but you can easily
reproduce the issue with podman or docker:
podman run -ti registry.gitlab.com/gnutls/build-images:buildenv-mingw-fedora40
git clone https://gitlab.com/gnutls/gnutls.git
(cd gnutls && git submodule deinit gnulib && git rm -rf gnulib)
git clone https://git.sv.gnu.org/git/gnulib.git
cd gnutls
./bootstrap --skip-po --gnulib-srcdir=$PWD/../gnulib
./configure --disable-gcc-warnings --host=x86_64-w64-mingw32
--target=x86_64-w64-mingw32 --with-included-unistring --disable-full-test-suite
--disable-doc
make
After bisecting, the first commit that introduced the issue seems to be:
commit f59ff6beeb3e5f437a4c847b9e1a785b30363e5b
Author: Bruno Haible <[email protected]>
Date: Mon Aug 12 16:15:50 2024 +0200
fdutimensat, utimensat tests: Fix test failures on Cygwin.
Reverting this change fixes the issue locally.
Regards,
--
Daiki Ueno