bug-texinfo
[Top][All Lists]
Advanced

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

Re: texinfo-6.3.90 pretest


From: Eli Zaretskii
Subject: Re: texinfo-6.3.90 pretest
Date: Sat, 29 Apr 2017 10:14:15 +0300

> From: Hans-Bernhard Bröker <address@hidden>
> Cc: address@hidden
> Date: Fri, 28 Apr 2017 22:33:17 +0200
> 
> I ran into that at first, too.  In short:
> 
>       pacman mingw-w64-{i686,x86_64}-perl
> 
> fixed it for me.
> 
> The crucial output appears on the terminal only, with nothing useful in 
> config.log.

There are 2 config.log files, one in the top-level directory, the
other somewhere under tp/ (I forgot the actual directory, and don't
have my build system accessible where I'm typing this).  Did you
check in both?

I do agree that it would be better if the commands that build TestXS
extension were logged in one of the 2 config.log files.  Gavin, can
this be easily added?

> It's a missing <sys/wait.h> which the perl5 CORE/perl.h is 
> trying to access in the test compile performed by configure (log excerpt 
> attached), lead by CORE/config.h which claims it should be available.

I don't use MinGW64 Perl, I use ActiveState Perl, which doesn't have
that problem.  In particular, CORE/config.h does not define the symbol
I_SYS_WAIT, which indicates whether sys/wait.h should be available,
and therefore CORE/perl.h doesn't try to access it.  As result, this
error:

> In file included from TestXS.xs:5:0:
> C:/msys64/usr/lib/perl5/core_perl/CORE/perl.h:809:25: fatal error: 
> sys/wait.h: No such file or directory
>  #   include <sys/wait.h>
>                          ^
> compilation terminated.
> make: *** [Makefile:963: TestXS_la-TestXS.lo] Error 1

is not shown in my case, and the TestXS.dll extension is successfully
built during the configure phase.  I verified that TestXS.dll exists
after configure finishes, and is a valid DLL.

The problem in my case is that the extension somehow fails to load, as
witnessed by this error message I cited in my message:

     no fallback module for TestXS at ../../../Texinfo/XSLoader.pm line 241.
     BEGIN failed--compilation aborted at 
../../../Texinfo/Convert/XSParagraph/TestXS.pm line 31.
     Compilation failed in require at 
../../../Texinfo/Convert/XSParagraph/fail.pl line 1.
     checking whether we can build Perl extension (XS) modules... no

These are Perl errors, not compiler errors.

My guess would be that the configure script tried to load the TestXS
extension into the Perl that is found along PATH, not into the Perl
specified via the PERL= setting with which the configure script was
invoked.  These two are different, because the one found on PATH is
the MSYS Perl, while the extension was built for a native Windows
Perl, so it's incompatible with the MSYS Perl ABI-wise.

But that's just a guess, and I'm now even less sure it's correct,
because you say you've succeeded building with the C extensions.

Btw, are you sure your built makeinfo indeed uses the C extensions?
The error in my case is very subtle, and doesn't stop the build, see
above.  Do you see the following in the configure log:

     checking whether we can build Perl extension (XS) modules... yes

If you see "... no" instead, then the test extension was built, but
configure concluded it cannot be used, so makeinfo will be built
without C extensions for you, as it did for me.

Anyway, I would love it if someone (Gavin?) could tell me how to turn
on some debugging facilities to find out what is the problem with
loading the built TestXS extension.

Thanks.



reply via email to

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