Skip to content

Build failure with Perl 5.34 and --enable-perlinterp=dynamic #8250

@foutrelis

Description

@foutrelis

I'm getting the following errors when trying to build vim 8.2.2879 with Perl 5.34:

In file included from /usr/lib/perl5/5.34/core_perl/CORE/perl.h:5744,
                 from if_perl.xs:62:
if_perl.xs: In function ‘Perl_SvTRUE’:
/usr/lib/perl5/5.34/core_perl/CORE/embed.h:36:33: warning: implicit declaration of function ‘Perl_SvTRUE_common’; did you mean ‘Perl_hv_common’? [-Wimplicit-function-declaration]
   36 | #define SvTRUE_common(a,b)      Perl_SvTRUE_common(aTHX_ a,b)
      |                                 ^~~~~~~~~~~~~~~~~~
/usr/lib/perl5/5.34/core_perl/CORE/embed.h:36:33: note: in definition of macro ‘SvTRUE_common’
   36 | #define SvTRUE_common(a,b)      Perl_SvTRUE_common(aTHX_ a,b)
      |                                 ^~~~~~~~~~~~~~~~~~
if_perl.xs:710:12: note: in expansion of macro ‘SvTRUE_nomg_NN’
  710 |     return SvTRUE_nomg_NN(sv);
      |            ^~~~~~~~~~~~~~

...

/usr/bin/ld: objects/if_perl.o: in function `ex_perl':
if_perl.c:(.text+0x4ea6): undefined reference to `Perl_SvTRUE_common'
/usr/bin/ld: objects/if_perl.o: in function `do_perleval':
if_perl.c:(.text+0x5385): undefined reference to `Perl_SvTRUE_common'
/usr/bin/ld: objects/if_perl.o: in function `ex_perldo':
if_perl.c:(.text+0x5afb): undefined reference to `Perl_SvTRUE_common'
collect2: error: ld returned 1 exit status

It appears that a fix similar to #6310 is needed, though looking at Perl/perl5@4eff5eb I'm not entirely sure if Perl_SvTRUE_common can be copied to vim as-is, and whether or not vim's copy of Perl_SvTRUE needs to be tweaked to add PERL_ARGS_ASSERT_SVTRUE.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions