On Thu, Nov 14, 2024 at 01:40:52PM +0200, Eli Zaretskii wrote:
> Yes, but which header exactly causes the syntax error?  I don't see
> vTHX mentioned in any header in the Texinfo tree, except this:
> 
>    tp/Texinfo/XS/ppport.h:10353:vTHX|5.006000||Viu
> 
> Could this cause the problem?  (I don't understand what ppport.h tries
> to do here.)

Not there, it is documentation in comments.  I think that it says that
vTHX exists since perl 5.006000.

> Or maybe this part of ppport.h causes the problem:
> 
>   #ifndef aTHX
>   #  define aTHX
>   #endif

My feeling is that aTHX should already be defined by XSUB.h, if needed,
which is included before ppport.h.

> because Perl's embedvar.h does
> 
>   #if defined(MULTIPLICITY)
>   /* cases 2 and 3 above */
> 
>   #  if defined(PERL_IMPLICIT_CONTEXT)
>   #    define vTHX        aTHX
>   #  else
>   #    define vTHX        PERL_GET_INTERP
>   #  endif
> 
> (I'm obviously stabbing in the dark here.)

I have seen that the Perl code is compiled with -DPERL_IMPLICIT_CONTEXT,
which, if I understand well is a legacy synonym for MULTIPLICITY and sets
the possibility to use multiple interpreters in the same program, which
may be incorrect for our code (maybe).  However, as we set explicitely
PERL_NO_GET_CONTEXT in all the files, and in particular in
api_to_perl.c, my understanding is that it negates the effects of
MULTIPLICITY, so it should not matter.  However, if MULTIPLICITY is
indeed set, it could be a reason why there is a failure as we may have
to specify an interpreter to use, although I have no idea how we do
that.


What is your Perl version?  Normally configure should have detected if
it is not recent enough, so I do not expect it to be very important, but
who knows.

-- 
Pat

Reply via email to