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.

Raspunde prin e-mail lui