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

Reply via email to