bug-texinfo
[Top][All Lists]
Advanced

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

Re: Can't build current HEAD with --enable-perl-xs on macOS


From: Gavin Smith
Subject: Re: Can't build current HEAD with --enable-perl-xs on macOS
Date: Thu, 15 Aug 2024 19:49:37 +0100

On Thu, Aug 15, 2024 at 03:59:23PM +0200, Dario Gjorgjevski wrote:
> Building on macOS with --enable-perl-xs fails with:
> 
>     $ TEXINFO_DEV_SOURCE=1 top_srcdir="$(top_srcdir)"
> top_builddir="$(top_builddir)" $(PERL) ../../tp/texi2any.pl -o
> texi2any_internals.info texi2any_internals.texi
>     dyld[99271]: dyld_image_path_containing_address(0x10d5c7000) =>
> '$(top_builddir)/tp/Texinfo/XS/.libs/XSParagraph.so'
>     dyld[99271]: _dyld_is_memory_immutable(0x10d5c7000, 28) => 0
>     dyld[99271]:       dlopen(XSParagraph.so) => 0x7ff918400670
>     dyld[99271]: dlsym(0x7ff918400670, "boot_Texinfo__Convert__Paragraph")
>     dyld[99271]:      dlsym("boot_Texinfo__Convert__Paragraph") => 0x10d5c9e50
>     dyld[99271]: missing symbol called
> 
> Bisecting, I see that the last commit I am able to build successfully
> is e665d4eaba.  I am doing an in-source build, if that changes
> anything.  (I see that there have been some changes to accommodate for
> out-of-source builds.)

Thanks for investigating it.  e665d4eaba is on 2024-05-16.  The next
commit which presumably broke it is c294d771337914676a, on the next day.

+2024-05-17  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/ParserNonXS.pm (_initialize_parsing, get_parser_info)
+       (parse_texi_file, _register_global_command, _enter_index_entry)
+       (_end_line_misc_line, _end_line_starting_block)
+       (_check_register_target_element_label, _handle_line_command)
+       (_handle_block_command, _parse_texi, _parse_line_command_args),
+       tp/Texinfo/Document.pm (new_document): setup the document in
+       _initialize_parsing, by calling a new function in Texinfo::Document,
+       new_document.  Associate the document to the parser as the docuemnt
+       key.  Set directly in the document the information registered in the
+       document in the parser.  Remove tp/Texinfo/Document.pm register
+       function.
+
+       * tp/Texinfo/ParserNonXS.pm (%parser_state_initialization)
+       (%parser_document_state_initialization)
+       (%parsing_state_initialization): split %parser_state_initialization
+       in two.

I have no idea why that commit would have broken the XS modules.

There is a possibility that the XS modules were disabled and then
after this commit, they started being run, revealing the error.
Did "TEXINFO_XS=required texi2any ..." work before that commit?

Anyway, your command line is whack:

   ... top_srcdir="$(top_srcdir)" top_builddir="$(top_builddir)" ...

$(...) does not interpolate a the value of a shell variable.  It in fact
interpolates the output of a shell command - same as `...` (except maybe
on some old shells).  You may be getting confused with Makefile syntax.

I don't even know how this is running with $(PERL) at the front of it.
What shell is this?

I'm guessing that this is actually running from a Makefile, not from
the command line, in spite of the $ prompt in your output.  How
exactly did you get this output?

The output here is strange:

>     dyld[99271]: dyld_image_path_containing_address(0x10d5c7000) =>
> '$(top_builddir)/tp/Texinfo/XS/.libs/XSParagraph.so'

I suspect "$(top_builddir)" should be the actual path to top_builddir.

You say that TEXINFO_XS=debug does not show anything useful but it would
still be helpful to see exactly how far it got successfully before failing.


> Running the offending command with TEXINFO_XS=omit seems to work.
> TEXINFO_XS=debug does not show anything interesting, only successes
> followed by the "missing symbol called" failure.
> 
> Best regards,
> Dario
> 



reply via email to

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