Hi Bruno and team, I don't use it in any other places, but only wget. Let's see the CI logs on GitHub. Requires login. I see you have an account.
It uses MSYS2 + Mingw-w64 on Windows. Gnulib on commit d15237a2, but ` fnmatch.c` is the same as the latest. You can see `fnmatch.c` adopted the `u32_` leading functions from https://github.com/lifenjoiner/wget-for-windows/actions/runs/9866603799/job/27245614495#step:12:102 ``` C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/14.1.0/../../../../i686-w64-mingw32/bin/ld.exe: ../lib/libgnu.a(fnmatch.o):fnmatch.c:(.text+0x240): undefined reference to `u32_strlen' C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/14.1.0/../../../../i686-w64-mingw32/bin/ld.exe: ../lib/libgnu.a(fnmatch.o):fnmatch.c:(.text+0x3fa): undefined reference to `u32_pcpy' ``` `_GL_SMALL_WCHAR_T` is defined to be 1 from `lib/uchar.in.h`. https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/uchar.in.h;h=166cbeccf8d5a0a667d4dddf49b778c89c14397d;hb=HEAD#l134 ``` 132 /* Define if a 'char32_t' can hold more characters than a 'wchar_t'. */ 133 #if @SMALL_WCHAR_T@ /* 32-bit AIX, Cygwin, native Windows */ 134 # define _GL_SMALL_WCHAR_T 1 135 #endif ``` And, we can confirm that `SMALL_WCHAR_T='1'` is in the `config.log` from https://github.com/lifenjoiner/wget-for-windows/actions/runs/9866603799/artifacts/1684599456 Go upstream further: In `m4/uchar_h.m4` https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=m4/uchar_h.m4;h=bb8801b164d66ba64eb65d58a5eb277196f2077b;hb=HEAD#l87 ``` 85 dnl Test whether a 'char32_t' can hold more characters than a 'wchar_t'. 86 gl_STDINT_BITSIZEOF([wchar_t], [gl_STDINT_INCLUDES]) 87 if test $BITSIZEOF_WCHAR_T -lt 32; then 88 SMALL_WCHAR_T=1 89 else 90 SMALL_WCHAR_T=0 91 fi 92 dnl SMALL_WCHAR_T is expected to be 1 on 32-bit AIX, Cygwin, native Windows. 93 AC_SUBST([SMALL_WCHAR_T]) ``` Now, we can say: 1. `_GL_SMALL_WCHAR_T` means being/using `wchar_t`, not `wchar_t` is too small. 2. `wchar_t` should be used for Windows. 3. `!_GL_SMALL_WCHAR_T` is false for Windows, and is a mistake. BTW: There is another error that `c32*.c` files are newly included, but `uc_is_*` functions are not. I haven't figured out how it happens, but very likely there is something wrong. https://github.com/lifenjoiner/wget-for-windows/actions/runs/9866603799/job/27245614495#step:12:108 ``` C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/14.1.0/../../../../i686-w64-mingw32/bin/ld.exe: ../lib/libgnu.a(libgnu_a-c32isalnum.o):c32isalnum.c:(.text+0x2c): undefined reference to `uc_is_alnum' C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/14.1.0/../../../../i686-w64-mingw32/bin/ld.exe: ../lib/libgnu.a(libgnu_a-c32isalpha.o):c32isalpha.c:(.text+0x2c): undefined reference to `uc_is_alpha' ``` Best Regards, YX Hao