On Fri, 10 Feb 2023 at 14:21, Bruno Haible <bruno@clisp.org> wrote:
It complains about the symbols defined in libiconv. This means, you need
to invoke the Gnulib module 'iconv' and add $(LIBICONV) or $(LTLIBICONV)
to the LDFLAGS.

Bruno to the rescue again! Many thanks.

Having added the iconv gnulib module, the Windows build works, but the tests, which use a Cython module, are now broken. The actual error is:

Traceback (most recent call last):
File "D:\a\recode\recode\tests\pytest", line 135, in main
module = __import__(base[:-3])
File "D:/a/recode/recode/tests/./t21_names.py", line 2, in <module>
import common
File "D:/a/recode/recode/tests/./common.py", line 10, in <module>
import Recode
ImportError: DLL load failed while importing Recode: The specified module could not be found.

I assume that the "DLL load failed" indicates a link error. Obviously my first thought was that something extra was needed for iconv; however, this appears already to be covered (in setup.py.in). I add LIBICONV there to the "extra_libs" argument. I had a look at the way the Python extension is compiled and compared it with the last Windows build that passed, and they seem to be identical; in both, libiconv.dll.a is added to the link line by cython.


They appear to be identical.

Is there some other casualty (other than iconv) of -no-undefined here?

I've just booted up my Windows VM to have a look myself, but, aside from it being extremely slow, I would again welcome any insights you might have!

--
https://rrt.sc3d.org