On Sun, Oct 06, 2024 at 09:17:38PM +0300, Eli Zaretskii wrote: > > Date: Sun, 6 Oct 2024 20:04:20 +0200 > > From: Patrice Dumas <[email protected]> > > > > In Bruno CI, previously the cygwin32 tests did not really check the XS/C > > code, as iconv was missing. Now it is installed and the XS/C code is > > tested. There are many errors of missing symbols when linking, > > corresponding to all the symbols that are in libtexinfo.dll.a, as if > > libtexinfo.dll.a was not used in the link, although it is: > > > > https://github.com/gnu-texinfo/ci-check/actions/runs/11203321204/job/31140537432 > > libtool: link: gcc -shared main/.libs/libtexinfoxs_la-build_perl_info.o > > main/.libs/libtexinfoxs_la-get_perl_info.o > > main/.libs/libtexinfoxs_la-options_get_perl.o > > -L/usr/lib/perl5/5.32/i686-cygwin-threads-64int/CORE -lperl > > ./.libs/libtexinfo.dll.a -ggdb -O2 -fstack-protector-strong -O3 -o > > .libs/cygtexinfoxs-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib > > -Xlinker .libs/libtexinfoxs.dll.a > > /usr/lib/gcc/i686-pc-cygwin/11/../../../../i686-pc-cygwin/bin/ld: > > main/.libs/libtexinfoxs_la-build_perl_info.o: in function `convert_error': > > > > /cygdrive/d/a/ci-check/ci-check/texinfo-7.1.90-20241006/build/tp/Texinfo/XS/../../../../tp/Texinfo/XS/main/build_perl_info.c:1180: > > undefined reference to `newSVpv_utf8' > > .... > > /usr/lib/gcc/i686-pc-cygwin/11/../../../../i686-pc-cygwin/bin/ld: > > main/.libs/libtexinfoxs_la-build_perl_info.o: in function > > `element_to_perl_hash': > > > > /cygdrive/d/a/ci-check/ci-check/texinfo-7.1.90-20241006/build/tp/Texinfo/XS/../../../../tp/Texinfo/XS/main/build_perl_info.c:801: > > undefined reference to `element_command_name' > > This looks to me like a simple problem of library order: the > newSVpv_utf8 function is from Perl, no? The above command has -lperl > before libtexinfo.dll.a, whereas it should probably be after it, no? > GNU ld is a single-pass linker, so the order matters.
Even though newSVpv_utf8 looks a lot like a Perl function/macro, for some reason it is not in Perl, so we added it in libtexinfo. > If this is not the problem, can you tell which library defines each of > these "undefined" functions? They are all in libtexinfo. You are right that libtexinfo itself requires some Perl symbols, so maybe this is the issue, although it is not apparent from the messages. -- Pat
