On Sun, Jan 11, 2026 at 11:25:12AM +0000, Gavin Smith wrote:
> I'm trying to understand the build system better but I want to say initially
> that Texinfo should have probably built under your initial setup.
> To start with, we have backup pure Perl code that should be able to
> run instead.
> 
> Also, it is possible that libperl is not even needed for the native code (XS)
> extension modules.  There is this comment in tta/configure.ac:
> 
>   # Test for linking against libperl.  Used to set LIBPERL_LINK conditional
>   # which is used for SWIG interface in swig/Makefile.am.
>   # Having XS enabled and the Perl headers does not ensure that it is
>   # possible to link against libperl as the .so/.a may not be present.
>   # Linking against libperl is not needed to load XS extensions on some
>   # platforms, the Perl executable probably providing the needed symbols,
>   # but it is needed when linking with non-undefined, and when there is
>   # no Perl executable involved.
> 
> We could try to fix this test not to succeed if only libperl.a is available, 
> not
> libperl.so.

I agree.  The test already links against libperl, but not in the same
setup as the code that failed, as libtool is used in the actual code,
not in the test.  I recall that it was not easy to do a test involving
libtool, as libtool is configured too.  That's why there is the
tta/perl/CheckXS directory with a "full" project setup to be able to check
with libtool.  Maybe we have no other choice than to do something
similar for the libperl link test.

> It's possible that libperl is only needed for two unessential features,
> the SWIG interface, and the alternative ctexi2any implementation of texi2any.

It is also needed on platforms that require --no-undefined.

> SWIG is currently disabled by default although code under the swig/ directory
> still seems to be involved in the build, as shown in your output.

It is the swig directory in tta/C/swig, which does not depend at all on
swig and solely defines external interfaces, that are used by the swig
interface.  It could be made such that it does not build when swig is
not used, but it is not very important either.

-- 
Pat

Reply via email to