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

Re: --enable-darwin and Python

Expand Messages
  • björn
    ... I m guessing that there is a version mismatch between the headers that you build against and the library that is being linked with. In the output you see
    Message 1 of 7 , Aug 5, 2012
    • 0 Attachment
      On Sat, Aug 4, 2012 at 11:13 PM, gmn wrote:
      > I'm sending this here rather than to vim_use because it's a Mac-specific
      > problem, even though it's about the official console vim from Bram's hg repo
      > (aka "BramVim").
      >
      > A short while ago, I discovered I had been calling --disable-darwin for the
      > configuring of BramVim. I'd been doing this for years, disguised 'neath a
      > bash alias. I couldn't recall why I was doing something so apparently dumb.
      >
      > Well, I discovered why, I think.
      >
      > If I don't --disable-darwin, then building vim chokes on enabling the python
      > interpreter:
      >
      > objects/if_python.o objects/os_macosx.o objects/os_mac_conv.o objects/main.o objects/memfile.o -lm -lncurses -liconv -lintl -framework Cocoa -framework Python
      > Undefined symbols:
      > "__PyObject_NextNotImplemented", referenced from:
      > __PyObject_NextNotImplemented$non_lazy_ptr in if_python.o
      > "_PyCapsule_GetPointer", referenced from:
      > _convert_dl in if_python.o
      > "_PyCapsule_New", referenced from:
      > _convert_dl in if_python.o
      > ld: symbol(s) not found
      > collect2: ld returned 1 exit status
      > make[1]: *** [vim] Error 1
      > make: *** [first] Error 2
      >
      > 1. My $PYTHONPATH is set to /usr/local/gmnpyth, which is where python 2.7.3
      > lives.

      I'm guessing that there is a version mismatch between the headers that
      you build against and the library that is being linked with. In the
      output you see "-framework Python" which means it will link against
      the system Python (/System/Library/Frameworks/Python.framework). You
      can look inside src/auto/config.mk to see which headers are being used
      (probably your custom version).

      To get it to work you have to make it build and link the same Python
      version. You can do this either by patching src/configure.in (which I
      find to be a PITA but would be the right thing to do) or as a
      temporary hack by editing src/auto/config.mk (easier). The latter
      gets overwritten each time you run configure however...

      Björn

      --
      You received this message from the "vim_mac" 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
    • gmn
      ... Though I started this thread as a question about BramVim, it now appears to me that the mystery is really about MacVim. Allow me to explain. Examining
      Message 2 of 7 , Aug 5, 2012
      • 0 Attachment
        björn, on 08/05/12 at 18:45:47 +0200, wrote:
        > On Sat, Aug 4, 2012 at 11:13 PM, gmn wrote:
        > > I'm sending this here rather than to vim_use because it's a Mac-specific
        > > problem, even though it's about the official console vim from Bram's hg repo
        > > (aka "BramVim").
        > >
        > > A short while ago, I discovered I had been calling --disable-darwin for the
        > > configuring of BramVim. I'd been doing this for years, disguised 'neath a
        > > bash alias. I couldn't recall why I was doing something so apparently dumb.
        > >
        > > Well, I discovered why, I think.
        > >
        > > If I don't --disable-darwin, then building vim chokes on enabling the python
        > > interpreter:
        > >
        > > objects/if_python.o objects/os_macosx.o objects/os_mac_conv.o objects/main.o objects/memfile.o -lm -lncurses -liconv -lintl -framework Cocoa -framework Python
        > > Undefined symbols:
        > > "__PyObject_NextNotImplemented", referenced from:
        > > __PyObject_NextNotImplemented$non_lazy_ptr in if_python.o
        > > "_PyCapsule_GetPointer", referenced from:
        > > _convert_dl in if_python.o
        > > "_PyCapsule_New", referenced from:
        > > _convert_dl in if_python.o
        > > ld: symbol(s) not found
        > > collect2: ld returned 1 exit status
        > > make[1]: *** [vim] Error 1
        > > make: *** [first] Error 2
        > >
        > > 1. My $PYTHONPATH is set to /usr/local/gmnpyth, which is where python 2.7.3
        > > lives.
        >
        > I'm guessing that there is a version mismatch between the headers that
        > you build against and the library that is being linked with. In the
        > output you see "-framework Python" which means it will link against
        > the system Python (/System/Library/Frameworks/Python.framework). You
        > can look inside src/auto/config.mk to see which headers are being used
        > (probably your custom version).
        >
        > To get it to work you have to make it build and link the same Python
        > version. You can do this either by patching src/configure.in (which I
        > find to be a PITA but would be the right thing to do) or as a
        > temporary hack by editing src/auto/config.mk (easier). The latter
        > gets overwritten each time you run configure however...

        Though I started this thread as a question about BramVim, it now appears
        to me that the mystery is really about MacVim. Allow me to explain.

        Examining src/configure.in for BramVim reveals that the python libs get
        set starting at line 898, where they get made into "-framework Python"
        if $MACOSX is set, and some other gibberish otherwise. $MACOSX is
        governed by --enable/--disable-darwin. So when I --disable-darwin, the
        "gibberish" in fact sets the python libs, correctly, to my
        /usr/local/gmnpyth. When I enable darwin, it gets what Björn said above
        and chokes.

        End of mystery re BramVim. (I bet the reason my problem only appeared
        on 10.6 and under is that 10.8 and probly 10.7 have their system
        python's as 2.7.x anyway, avoiding the choke).

        Now, mystery re MacVim: the src/configure.in for MacVim has the
        corresponding line at 921. And $MACOSX is set in MacVim. So the python
        libs get set to "-framework Python" just like in BramVim with darwin
        enabled. So then why does MacVim not choke? (And why does it choke
        when gui is explicitly disabled?). MacVim's src/auto/config.mk seems
        identical to that of BramVim-with-darwin-enabled on python-related
        aspects (though not on everything).

        I notice that in fact MacVim, though it doesn't choke, is not picking up
        my custom python and instead uses the sytem's old one. That now makes sense.
        The further mystery is how I can get MacVim (and darwin-enabled BramVim)
        to pick up my custom python location. (Setting --with-python-config-dir
        doesn't help).

        -gmn

        --
        You received this message from the "vim_mac" 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
      • Lukas Ciszewski
        Hello, a little bit late, but i had the same problem with the installation of the 7.4 branch from sources on my OSX 10.6.8 and investigated a little bit. My
        Message 3 of 7 , Dec 3, 2013
        • 0 Attachment
          Hello,

          a little bit late, but i had the same problem with the installation of the 7.4 branch from sources on my OSX 10.6.8 and investigated a little bit. My solution to the Problem was to install Python 2.7.3 as a framework merging the resulting folder into the /System/Library/.../Python.framework folder and then changing the .../Python.framework/Versions/Current pointer to the newly added 2.7 Version. Then compiling and running vim made no problems. As this is only a workaround, i personally think, as stated before, the configuration process needs to be adjusted.

          Cheers
          Lukas

          --
          --
          You received this message from the "vim_mac" 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_mac" group.
          To unsubscribe from this group and stop receiving emails from it, send an email to vim_mac+unsubscribe@....
          For more options, visit https://groups.google.com/groups/opt_out.
        Your message has been successfully submitted and would be delivered to recipients shortly.