All,
Because of changes in Fedora 20, Vim won't build with
--enable-perlinterp. Back in Fedora 16, Perl's ExtUtils were
found entirely in /usr/share/perl5/ExtUtils. The xsubpp utility
was therefore found in /usr/share/perl5/ExtUtils/xsubpp. By
Fedora 20, a portion of ExtUtils was moved into
/usr/share/perl5/vendor_perl/ExtUtils, including the xsubpp
utility. The below patches detect where xsubpp is installed
based on the already-detected location of PERLLIB
(vi_cv_perllib). Note that I've tested this only on Fedora 16
and Fedora 20, but the logic should remain unchanged for systems
lacking /usr/share/perl5/vendor_perl/ExtUtils/xsubpp.
diff -r 913d16b4904c src/Makefile
--- a/src/Makefile Thu Aug 07 13:55:10 2014 +0200
+++ b/src/Makefile Fri Aug 08 20:57:58 2014 -0400
@@ -2464,7 +2464,7 @@
auto/if_perl.c: if_perl.xs
$(PERL) -e 'unless ( $$] >= 5.005 ) { for (qw(na defgv errgv)) {
print "#define PL_$$_ $$_\n" }}' > $@
- $(PERL) $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
+ $(PERL) $(PERL_XSUBPP) -prototypes -typemap \
$(PERLLIB)/ExtUtils/typemap if_perl.xs >> $@
auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in
diff -r 913d16b4904c src/config.mk.in
--- a/src/config.mk.in Thu Aug 07 13:55:10 2014 +0200
+++ b/src/config.mk.in Fri Aug 08 20:57:58 2014 -0400
@@ -53,6 +53,7 @@
PERL = @vi_cv_path_perl@
PERLLIB = @vi_cv_perllib@
+PERL_XSUBPP = @vi_cv_perl_xsubpp@
PERL_LIBS = @PERL_LIBS@
SHRPENV = @shrpenv@
PERL_SRC = @PERL_SRC@
diff -r 913d16b4904c src/configure.in
--- a/src/configure.in Thu Aug 07 13:55:10 2014 +0200
+++ b/src/configure.in Fri Aug 08 20:57:58 2014 -0400
@@ -933,6 +933,14 @@
fi
vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print
$Config{privlibexp}'`
AC_SUBST(vi_cv_perllib)
+ vi_cv_perl_extutils=unknown_perl_extutils_path
+ for extutils_rel_path in ExtUtils vendor_perl/ExtUtils; do
+ xsubpp_path="$vi_cv_perllib/$extutils_rel_path/xsubpp"
+ if test -f "$xsubpp_path"; then
+ vi_cv_perl_xsubpp="$xsubpp_path"
+ fi
+ done
+ AC_SUBST(vi_cv_perl_xsubpp)
dnl Remove "-fno-something", it breaks using cproto.
perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
-e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
The below patch is included for completeness, but it should be
re-generated via ``make autoconf`` after applying the above
patches.
diff -r 913d16b4904c src/auto/configure
--- a/src/auto/configure Thu Aug 07 13:55:10 2014 +0200
+++ b/src/auto/configure Fri Aug 08 20:57:58 2014 -0400
@@ -687,6 +687,7 @@
PERL_OBJ
PERL_SRC
shrpenv
+vi_cv_perl_xsubpp
vi_cv_perllib
vi_cv_path_perl
MZSCHEME_MZC
@@ -5604,6 +5605,14 @@
fi
vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print
$Config{privlibexp}'`
+ vi_cv_perl_extutils=unknown_perl_extutils_path
+ for extutils_rel_path in ExtUtils vendor_perl/ExtUtils; do
+ xsubpp_path="$vi_cv_perllib/$extutils_rel_path/xsubpp"
+ if test -f "$xsubpp_path"; then
+ vi_cv_perl_xsubpp="$xsubpp_path"
+ fi
+ done
+
perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir
-MExtUtils::Embed \
-e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[^ ]*//'`
perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e
'ldopts' | \
@@ -11438,7 +11447,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31)
<< 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11484,7 +11493,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31)
<< 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11508,7 +11517,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31)
<< 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11553,7 +11562,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31)
<< 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11577,7 +11586,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31)
<< 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
Michael Henry
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.