-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vim not build with upcoming Perl 5.38 #12543
Comments
A potential workaround is to configure with |
That's how Vim is built in Fedora. However, once in time the languages define new functions in newer release, which Vim has to fake it to make this dynamic linking working - the same thing happens time to time with Python and Ruby as well. |
How to reproduce:
|
Arch Linux has Perl 5.36.1, seems like it is no longer possible to build vim with perl starting with 5.37. |
I'm not a programer and know much about perl but could this be a patch for that issue?: /* perl-5.34 needs Perl_SvTRUE_common; used in SvTRUE_nomg_NN */
# if (PERL_REVISION == 5) && (PERL_VERSION >= 34)
+# define sv_true(a) Perl_sv_true(aTHX_ a)
PERL_STATIC_INLINE bool
Perl_SvTRUE_common(pTHX_ SV * sv, const bool sv_2bool_is_fallback)
{
@@ -721,7 +722,7 @@ Perl_SvTRUE_common(pTHX_ SV * sv, const bool sv_2bool_is_fallback)
return FALSE;
if (SvPOK(sv))
- return SvPVXtrue(sv);
+ return sv_true(av);
if (SvIOK(sv))
return SvIVX(sv) != 0; /* casts to bool */ |
I build it with my patch but there are more bugs so I am not able to fix it, maybe someone else can do it. |
But here are the Links where I found the code which is missing: |
another potential "fixup": diff --git a/src/if_perl.xs b/src/if_perl.xs
index c69ed9ef1..00e296882 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -10,6 +10,11 @@
* Mostly written by Sven Verdoolaege.
*/
+#if (PERL_REVISION == 5) && (PERL_VERSION >= 37)
+#pragma GCC diagnostic ignored "-Wimplicit-function-declaration"
+CFLAGS="-Wl,--unresolved-symbols=ignore-all"
+#endif
+
#define _memory_h /* avoid memset redeclaration */
#define IN_PERL_FILE /* don't include if_perl.pro from proto.h */ if_perl.c needs fixes as well |
I have good news: |
@pheiduck I tested your changes with Fedora 39 and Perl 5.38.0-RC2 and it works for me. |
Problem: Build Failure with Perl 5.38 Solution: Fix Build Failure closes: vim/vim#12543, closes: vim/vim#12575 vim/vim@1d7caa5 Co-authored-by: Philip H <47042125+pheiduck@users.noreply.github.com>
Steps to reproduce
I am preparing update to Perl 5.38 for Fedora 39. During the preparation I tried to rebuild all dependencies with it.
I found that build of vim was failing with new Perl.
For the tests I used the latest devel release Perl 5.37.11
Expected behaviour
Successful build of vim
Version of Vim
9.0 1627
Environment
Fedora 39 (rawhide)
Devel release of Perl 5.37.11
Logs and stack traces
The text was updated successfully, but these errors were encountered: