Loading ...
Sorry, an error occurred while loading the content.

Issue 170 in vim: Support for Activestate perl 5.18.1.1800 on windows

Expand Messages
  • vim@...
    Status: New Owner: ---- Labels: Type-Defect Priority-Medium New issue 170 by z...@softvisio.net: Support for Activestate perl 5.18.1.1800 on windows
    Message 1 of 10 , Oct 1, 2013
    • 0 Attachment
      Status: New
      Owner: ----
      Labels: Type-Defect Priority-Medium

      New issue 170 by z...@...: Support for Activestate perl
      5.18.1.1800 on windows
      http://code.google.com/p/vim/issues/detail?id=170

      Please, add support for Activestate perl 5.18.1.1800 on windows.

      Building vim v7-4-045 from sources with perl support:

      mingw32-make.exe -f Make_ming.mak ARCH=x86-64 FEATURES=HUGE OLE=yes
      PERL="d:/utils/perl" PERL_VER=518 DYNAMIC_PERL=yes gvim.exe xxd/xxd.exe
      vimrun.exe

      produce following errors:

      gobjx86-64/if_perl.o:if_perl.c:(.text+0xad8): undefined reference to
      `__imp_Perl_croak_xs_usage'
      gobjx86-64/if_perl.o:if_perl.c:(.text+0xca8): undefined reference to
      `__imp_Perl_croak_xs_usage'
      gobjx86-64/if_perl.o:if_perl.c:(.text+0xefb): undefined reference to
      `__imp_Perl_croak_xs_usage'
      gobjx86-64/if_perl.o:if_perl.c:(.text+0x1058): undefined reference to
      `__imp_Perl_croak_xs_usage'
      gobjx86-64/if_perl.o:if_perl.c:(.text+0x139b): undefined reference to
      `__imp_Perl_croak_xs_usage'
      gobjx86-64/if_perl.o:if_perl.c:(.text+0x16ee): more undefined references to
      `__imp_Perl_croak_xs_usage' follow
      gobjx86-64/if_perl.o:if_perl.c:(.text+0x3968): undefined reference to
      `__imp_Perl_sv_free2'
      gobjx86-64/if_perl.o:if_perl.c:(.text+0x3d48): undefined reference to
      `__imp_Perl_sv_free2'
      d:/utils/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe:
      gobjx86-64/if_perl.o:
      bad reloc address 0x
      20 in section `.data'
      collect2.exe: error: ld returned 1 exit status
      Make_ming.mak:691: recipe for target 'gvim.exe' failed
      mingw32-make.exe: *** [gvim.exe] Error 1

      I use:
      - windows 8 x64;
      - activestate perl 5.18.1.1800 x64;
      - MinGW-builds x64-4.8.1-release-posix-seh-rev5;

      --
      You received this message because this project is configured to send all
      issue notifications to this address.
      You may adjust your notification preferences at:
      https://code.google.com/hosting/settings

      --
      --
      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 vim_dev+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • vim@...
      Comment #1 on issue 170 by Gauchy...@gmail.com: Support for Activestate perl 5.18.1.1800 on windows http://code.google.com/p/vim/issues/detail?id=170 The
      Message 2 of 10 , Oct 16, 2013
      • 0 Attachment
        Comment #1 on issue 170 by Gauchy...@...: Support for Activestate
        perl 5.18.1.1800 on windows
        http://code.google.com/p/vim/issues/detail?id=170

        The modification of if_perl.xs to work around.

        1. Perl_sv_free2:
        Perl 5.18.1 introduces a new file lib\CORE\inline.h, which defines inline
        functions that refers to Perl_sv_free2 before if_perl.xs defines
        Perl_sv_free2.
        Perl_sv_free2 must be defined before inline.h uses it.
        Define macro PERL_NO_INLINE_FUNCTIONS before #include "vim.h" to prevent
        perl.h to include inline.h.
        After Perl_sv_free2 is defined, include "inline.h" manual to retrieve the
        definitions of S_SvREFCNT_inc and S_SvREFCNT_dec.
        Another issue is, Perl_sv_free2 has 2 arguments now, the definition
        becomes "static void (*Perl_sv_free2)(pTHX_ SV*, const U32);".

        2. Perl_croak_xs_usage:
        In lib\CORE\embed.h, macro croak_xs_usage is defined as "#define
        croak_xs_usage Perl_croak_xs_usage".
        However, in the generated if_perl.c, croak_xs_usage should be defined
        as "#define croak_xs_usage S_croak_xs_usage".
        Thus, undefine macro croak_xs_usage, and undefine macro
        PERL_ARGS_ASSERT_CROAK_XS_USAGE to enable "#define croak_xs_usage
        S_croak_xs_usage".


        Attachments:
        if_perl.xs 35.2 KB

        --
        You received this message because this project is configured to send all
        issue notifications to this address.
        You may adjust your notification preferences at:
        https://code.google.com/hosting/settings

        --
        --
        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 vim_dev+unsubscribe@....
        For more options, visit https://groups.google.com/groups/opt_out.
      • vim@...
        Comment #2 on issue 170 by Gauchy...@gmail.com: Support for Activestate perl 5.18.1.1800 on windows http://code.google.com/p/vim/issues/detail?id=170 The
        Message 3 of 10 , Oct 16, 2013
        • 0 Attachment
          Comment #2 on issue 170 by Gauchy...@...: Support for Activestate
          perl 5.18.1.1800 on windows
          http://code.google.com/p/vim/issues/detail?id=170

          The modification of if_perl.xs to work around.

          1. Perl_sv_free2:
          Perl 5.18.1 introduces a new file lib\CORE\inline.h, which defines inline
          functions that refers to Perl_sv_free2 before if_perl.xs defines
          Perl_sv_free2.
          Perl_sv_free2 must be defined before inline.h uses it.
          Define macro PERL_NO_INLINE_FUNCTIONS before #include "vim.h" to prevent
          perl.h to include inline.h.
          After Perl_sv_free2 is defined, include "inline.h" manual to retrieve the
          definitions of S_SvREFCNT_inc and S_SvREFCNT_dec.
          Another issue is, Perl_sv_free2 has 2 arguments now, the definition
          becomes "static void (*Perl_sv_free2)(pTHX_ SV*, const U32);".

          2. Perl_croak_xs_usage:
          In lib\CORE\embed.h, macro croak_xs_usage is defined as "#define
          croak_xs_usage Perl_croak_xs_usage".
          However, in the generated if_perl.c, croak_xs_usage should be defined
          as "#define croak_xs_usage S_croak_xs_usage".
          Thus, undefine macro croak_xs_usage, and undefine macro
          PERL_ARGS_ASSERT_CROAK_XS_USAGE to enable "#define croak_xs_usage
          S_croak_xs_usage".

          I use:
          - Window 7 Home Basic x64.
          - Visual C++ 2012 Express for Desktop SP1 x86.
          - Perl 5.18.1 x86 built from source:
          http://www.cpan.org/src/5.0/perl-5.18.1.tar.gz.

          Attachments:
          if_perl.xs 35.2 KB

          --
          You received this message because this project is configured to send all
          issue notifications to this address.
          You may adjust your notification preferences at:
          https://code.google.com/hosting/settings

          --
          --
          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 vim_dev+unsubscribe@....
          For more options, visit https://groups.google.com/groups/opt_out.
        • vim@...
          Comment #3 on issue 170 by alaska...@gmail.com: Support for Activestate perl 5.18.1.1800 on windows http://code.google.com/p/vim/issues/detail?id=170
          Message 4 of 10 , Oct 16, 2013
          • 0 Attachment
            Comment #3 on issue 170 by alaska...@...: Support for Activestate
            perl 5.18.1.1800 on windows
            http://code.google.com/p/vim/issues/detail?id=170

            Unfortunately this patch does not work with Activestate perl 5.18.1 x64.
            Part of error log:

            if_perl.c:1916:15: note: in expansion of macro 'newXSproto_portable'
            (void)newXSproto_portable("VIBUF::Get", XS_VIBUF_Get, file, "$;@");
            ^
            if_perl.c:1137:67: error: expected expression before ')' token
            #define newXSproto_portable(name, c_impl, file, proto)
            (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
            ^
            if_perl.c:1917:15: note: in expansion of macro 'newXSproto_portable'
            (void)newXSproto_portable("VIBUF::Set", XS_VIBUF_Set, file, "$;@");
            ^
            if_perl.c:1137:66: error: invalid operands to binary * (have 'struct
            <anonymous> *' and 'struct <anonymous> *')
            #define newXSproto_portable(name, c_impl, file, proto)
            (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
            ^
            if_perl.c:1917:15: note: in expansion of macro 'newXSproto_portable'
            (void)newXSproto_portable("VIBUF::Set", XS_VIBUF_Set, file, "$;@");
            ^
            if_perl.c:1137:67: error: expected expression before ')' token
            #define newXSproto_portable(name, c_impl, file, proto)
            (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
            ^
            if_perl.c:1918:15: note: in expansion of macro 'newXSproto_portable'
            (void)newXSproto_portable("VIBUF::Delete", XS_VIBUF_Delete,
            file, "$;@");
            ^
            if_perl.c:1137:66: error: invalid operands to binary * (have 'struct
            <anonymous> *' and 'struct <anonymous> *')
            #define newXSproto_portable(name, c_impl, file, proto)
            (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
            ^
            if_perl.c:1918:15: note: in expansion of macro 'newXSproto_portable'
            (void)newXSproto_portable("VIBUF::Delete", XS_VIBUF_Delete,
            file, "$;@");
            ^
            if_perl.c:1137:67: error: expected expression before ')' token
            #define newXSproto_portable(name, c_impl, file, proto)
            (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
            ^
            if_perl.c:1919:15: note: in expansion of macro 'newXSproto_portable'
            (void)newXSproto_portable("VIBUF::Append", XS_VIBUF_Append,
            file, "$;@");
            ^
            if_perl.c:1137:66: error: invalid operands to binary * (have 'struct
            <anonymous> *' and 'struct <anonymous> *')
            #define newXSproto_portable(name, c_impl, file, proto)
            (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
            ^
            if_perl.c:1919:15: note: in expansion of macro 'newXSproto_portable'
            (void)newXSproto_portable("VIBUF::Append", XS_VIBUF_Append,
            file, "$;@");
            ^
            if_perl.c:1924:5: error: 'XSRETURN_YES' undeclared (first use in this
            function)
            XSRETURN_YES;
            ^
            Make_ming.mak:734: recipe for target 'gobjx86-64/if_perl.o' failed
            mingw32-make.exe: *** [gobjx86-64/if_perl.o] Error 1

            --
            You received this message because this project is configured to send all
            issue notifications to this address.
            You may adjust your notification preferences at:
            https://code.google.com/hosting/settings

            --
            --
            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 vim_dev+unsubscribe@....
            For more options, visit https://groups.google.com/groups/opt_out.
          • vim@...
            Comment #4 on issue 170 by Gauchy...@gmail.com: Support for Activestate perl 5.18.1.1800 on windows http://code.google.com/p/vim/issues/detail?id=170 Sorry, I
            Message 5 of 10 , Oct 16, 2013
            • 0 Attachment
              Comment #4 on issue 170 by Gauchy...@...: Support for Activestate
              perl 5.18.1.1800 on windows
              http://code.google.com/p/vim/issues/detail?id=170

              Sorry, I forgot to mention that I was building vim-7.3.1314. :P






              --
              You received this message because this project is configured to send all
              issue notifications to this address.
              You may adjust your notification preferences at:
              https://code.google.com/hosting/settings

              --
              --
              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 vim_dev+unsubscribe@....
              For more options, visit https://groups.google.com/groups/opt_out.
            • vim@...
              Comment #5 on issue 170 by Gauchy...@gmail.com: Support for Activestate perl 5.18.1.1800 on windows http://code.google.com/p/vim/issues/detail?id=170 Sorry,
              Message 6 of 10 , Oct 16, 2013
              • 0 Attachment
                Comment #5 on issue 170 by Gauchy...@...: Support for Activestate
                perl 5.18.1.1800 on windows
                http://code.google.com/p/vim/issues/detail?id=170

                Sorry, I've forgot to mention that I was building vim-7.3.1314. :P

                vim-7.4 has a different vim.h, which doesn't include "perl.h" anymore, and
                the if_perl.xs is changed accordingly.
                That's why a vim-7.3.1314 "if_perl.xs" doesn't work (some definitions from
                perl are missing).

                I've attached the modified "if_perl.xs" from revision 5404, which should
                work for both 7.3 and 7.4 versions.

                OK to build under Visual C++ 2012.
                I didn't test it with mingw32, however.

                Attachments:
                if_perl.xs 36.9 KB

                --
                You received this message because this project is configured to send all
                issue notifications to this address.
                You may adjust your notification preferences at:
                https://code.google.com/hosting/settings

                --
                --
                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 vim_dev+unsubscribe@....
                For more options, visit https://groups.google.com/groups/opt_out.
              • vim@...
                Comment #6 on issue 170 by z...@softvisio.net: Support for Activestate perl 5.18.1.1800 on windows http://code.google.com/p/vim/issues/detail?id=170 Thanks,
                Message 7 of 10 , Oct 16, 2013
                • 0 Attachment
                  Comment #6 on issue 170 by z...@...: Support for Activestate perl
                  5.18.1.1800 on windows
                  http://code.google.com/p/vim/issues/detail?id=170

                  Thanks, now works without any errors.
                  Built and tested vim 7.4 with mingw-x64 and ActivePerl 5.18.1.

                  --
                  You received this message because this project is configured to send all
                  issue notifications to this address.
                  You may adjust your notification preferences at:
                  https://code.google.com/hosting/settings

                  --
                  --
                  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 vim_dev+unsubscribe@....
                  For more options, visit https://groups.google.com/groups/opt_out.
                • vim@...
                  Comment #7 on issue 170 by dzagas...@gmail.com: Support for Activestate perl 5.18.1.1800 on windows http://code.google.com/p/vim/issues/detail?id=170 Hi,
                  Message 8 of 10 , Jan 19, 2014
                  • 0 Attachment
                    Comment #7 on issue 170 by dzagas...@...: Support for Activestate
                    perl 5.18.1.1800 on windows
                    http://code.google.com/p/vim/issues/detail?id=170

                    Hi,

                    windows 8.1 x64
                    vim 7.4.155
                    strawberry perl 5.18.2.1 x64
                    MinGW-builds toolchain, x64-4.8.1-release-posix-seh-rev5

                    Compiling vim with following cmd:

                    mingw32-make.exe -f Make_ming.mak ARCH=x86-64 FEATURES=HUGE OLE=yes
                    PERL="d:/devel/perl" PERL_VER=518 DYNAMIC_PERL=yes gvim.exe xxd/xxd.exe
                    vimrun.exe

                    Vim compiled successfully, but when i trying to use perl inside vim - got
                    error:

                    E370: Could not load library perl518.dll
                    Sorry, this command is disabled: the Perl library could not be loaded.

                    Perl bin directory is in the %path%, also, with ActivePerl 5.18.1 x64
                    everything works fine.

                    Please, help to resolve this problem.

                    --
                    You received this message because this project is configured to send all
                    issue notifications to this address.
                    You may adjust your notification preferences at:
                    https://code.google.com/hosting/settings

                    --
                    --
                    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 vim_dev+unsubscribe@....
                    For more options, visit https://groups.google.com/groups/opt_out.
                  • vim@...
                    Comment #8 on issue 170 by ktakata6...@gmail.com: Support for Activestate perl 5.18.1.1800 on windows https://code.google.com/p/vim/issues/detail?id=170 The
                    Message 9 of 10 , Nov 14, 2014
                    • 0 Attachment
                      Comment #8 on issue 170 by ktakata6...@...: Support for Activestate
                      perl 5.18.1.1800 on windows
                      https://code.google.com/p/vim/issues/detail?id=170

                      The original issue was already fixed with 7.4.117, 120, 127 and 128.
                      Maybe this issue can be closed.

                      > #7 dzagas...@...

                      There are some fixes for if_perl after 7.4.155.
                      (E.g. 7.4.321 supports Strawberry Perl 5.20.)
                      Does it still occur with the latest Vim?

                      --
                      You received this message because this project is configured to send all
                      issue notifications to this address.
                      You may adjust your notification preferences at:
                      https://code.google.com/hosting/settings

                      --
                      --
                      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 vim_dev+unsubscribe@....
                      For more options, visit https://groups.google.com/d/optout.
                    • vim@...
                      Updates: Status: Fixed Comment #9 on issue 170 by chrisbr...@googlemail.com: Support for Activestate perl 5.18.1.1800 on windows
                      Message 10 of 10 , Nov 15, 2014
                      • 0 Attachment
                        Updates:
                        Status: Fixed

                        Comment #9 on issue 170 by chrisbr...@...: Support for
                        Activestate perl 5.18.1.1800 on windows
                        https://code.google.com/p/vim/issues/detail?id=170

                        Okay, closing as fixed then.

                        --
                        You received this message because this project is configured to send all
                        issue notifications to this address.
                        You may adjust your notification preferences at:
                        https://code.google.com/hosting/settings

                        --
                        --
                        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 vim_dev+unsubscribe@....
                        For more options, visit https://groups.google.com/d/optout.
                      Your message has been successfully submitted and would be delivered to recipients shortly.