> 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. If this is not the problem, can you tell which library defines each of these "undefined" functions?
