bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: texinfo-6.0.91 pretest


From: Eli Zaretskii
Subject: Re: texinfo-6.0.91 pretest
Date: Fri, 01 Jan 2016 13:08:03 +0200

> Date: Tue, 29 Dec 2015 18:16:17 +0000
> From: Gavin Smith <address@hidden>
> 
> The next pretest for the next Texinfo release has been uploaded to
> 
> ftp://alpha.gnu.org/gnu/texinfo/texinfo-6.0.91.tar.xz
> http://alpha.gnu.org/gnu/texinfo/texinfo-6.0.91.tar.xz
> 
> Please send any comments to address@hidden
> 
> Changes since last time include a fix for a bad Info display bug which
> left it nearly unusable, and a Perl XS change which should allow the
> loadable extension modules to work with more versions of Perl.

The build with '--disable-perl-xs' builds fine with MinGW and passes
all the non-skipped tests.  I spotted a warning from the configure
script:

  ./configure: line 22339: test: =: unary operator expected

but it seems to be harmless for the MS-Windows build.

The build with Perl XS is less successful.  First, the configure
script decides that modules cannot be built, due to this problem with
libtool invocation:

  libtool: warning: undefined symbols not allowed in i686-pc-mingw32 shared 
libraries; building static only

When linking a shared library on MS-Windows, one needs to pass the
'-no-undefined' switch to libtool.  I hacked
tp/Texinfo/Convert/XSParagraph/Makefile.in to add -no-undefined to
LDFLAGS to solve that.

The next problem was with linking TestXS as a shared library.  Because
no undefined references are allowed when linking a shared library on
MS-Windows, the linker needs to see an import library which tells it
where to find the Perl functions at run time.  This library is found
like this:

    perl -V:libperl

The result is a file name, like libperl520.a, with no leading
directories, so one needs also the suitable linker flags before that,
which can be obtained with

    perl -V:ldflags

The result (after converting it in fetch_conf) should be added to the
value of PERL_CONF_cccdlflags.

Finally, libperl520.a should be converted into -lperl520, otherwise
libtool claims that it is being told to link against a static library,
and refuses to create a shared library for TestXS again.

After all this, the configure script succeeds to link TestXS, and
"make" produces XSParagraph.dll shared library.  However, "make" then
fails when producing texinfo.info in the doc/ directory, because Perl
crashes.

I suspect that the reason could be the fact that my Perl was compiled
with 64-bit int's (USE_64_BIT_INT is shown in the output of "perl -V")
although this is a 32-bit system and a 32-bit build of Texinfo's C
programs.  Could it be that the XSParagraph and its subroutines assume
that the 'int' data type is the same type as the integers used by
Perl?  If so, can you suggest where in the XSParagraph sources to try
to convert these into 64-bit types?

Or maybe you have other ideas for possible reasons.  (I don't have a
debuggable version of Perl, so I cannot run it under a debugger to see
where and why it fails, exactly.)

Failing all that, the conclusion should probably be that Texinfo
cannot currently be compiled with MinGW using XSParagraph extensions.

Thanks.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]