bug-texinfo
[Top][All Lists]
Advanced

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

Re: Texinfo 7.0.93 pretest available


From: Eli Zaretskii
Subject: Re: Texinfo 7.0.93 pretest available
Date: Sat, 07 Oct 2023 16:00:17 +0300

> From: Gavin Smith <gavinsmith0123@gmail.com>
> Date: Sat, 30 Sep 2023 17:16:57 +0100
> Cc: platform-testers@gnu.org
> 
> A pretest distribution for the next Texinfo release (7.1) has been
> uploaded to
> 
> https://alpha.gnu.org/gnu/texinfo/texinfo-7.0.93.tar.xz

This fails to build on MS-Windows with mingw.org's MinGW.  First, I
needed to add the missing dTHX in several places; patch below.  After
making those changes, the extensions compiled and linked, but Perl
crashed while running this command:

   make[3]: Entering directory `/d/gnu/texinfo-7.0.93/doc'
   restore=: && backupdir=".am$$" && \
   rm -rf $backupdir && mkdir $backupdir && \
   if (TEXINFO_DEV_SOURCE=1  top_srcdir=".."  top_builddir=".." 
/d/usr/Perl/bin/perl ../tp/texi2any --version) >/dev/null 2>&1; then \
     for f in texinfo.info texinfo.info-[0-9] texinfo.info-[0-9][0-9] 
texinfo.i[0-9] texinfo.i[0-9][0-9]; do \
       if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
     done; \
   else :; fi && \
   if TEXINFO_DEV_SOURCE=1  top_srcdir=".."  top_builddir=".." 
/d/usr/Perl/bin/perl ../tp/texi2any -c INFO_SPECIAL_CHARS_WARNING=0  -I . \
    -o texinfo.info `test -f 'texinfo.texi' || echo './'`texinfo.texi; \
   then \
     rc=0; \
   else \
     rc=$?; \
     $restore $backupdir/* `echo "./texinfo.info" | sed 's|[^/]*$||'`; \
   fi; \
   rm -rf $backupdir; exit $rc
   Makefile:1833: recipe for target `texinfo.info' failed
   make[3]: *** [texinfo.info] Error 5

The crash is inside parsetexi.dll, but I don't know where exactly.

Any ideas how to debug this?

Here's the patch I promised:

--- tp/Texinfo/XS/xspara.c.~1~  2023-08-14 21:47:01.000000000 +0300
+++ tp/Texinfo/XS/xspara.c      2023-10-07 15:48:18.903000000 +0300
@@ -242,6 +242,9 @@ xspara__print_escaped_spaces (char *stri
 {
   static TEXT t;
   char *p = string;
+
+  dTHX;
+
   text_reset (&t);
   while (*p)
     {
@@ -566,6 +569,8 @@ xspara_get_pending (void)
 void
 xspara__add_pending_word (TEXT *result, int add_spaces)
 {
+  dTHX;
+
   if (state.word.end == 0 && !state.invisible_pending_word && !add_spaces)
     return;
 
@@ -641,6 +646,9 @@ char *
 xspara_end (void)
 {
   static TEXT ret;
+
+  dTHX;
+
   text_reset (&ret);
   state.end_line_count = 0;
 
@@ -687,6 +695,8 @@ xspara_end (void)
 void
 xspara__add_next (TEXT *result, char *word, int word_len, int transparent)
 {
+  dTHX;
+
   int disinhibit = 0;
   if (!word)
     return;


--- tp/Texinfo/XS/parsetexi/api.c.~1~   2023-08-14 23:12:04.000000000 +0300
+++ tp/Texinfo/XS/parsetexi/api.c       2023-10-07 15:50:23.496750000 +0300
@@ -158,6 +158,8 @@ reset_parser_except_conf (void)
 void
 reset_parser (int debug_output)
 {
+  dTHX;
+
   /* NOTE: Do not call 'malloc' or 'free' in this function or in any function
      called in this file.  Since this file (api.c) includes the Perl headers,
      we get the Perl redefinitions, which we do not want, as we don't use



reply via email to

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