On Fri, 10 Feb 2023 at 14:21, Bruno Haible <br...@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.

Compare the working version:
https://github.com/rrthomas/recode/actions/runs/4115503607/jobs/7104302788#step:9:2302
to the non-working:
https://github.com/rrthomas/recode/actions/runs/4150792693/jobs/7180677411#step:9:2306

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

Reply via email to