symbol not found involving dynlink/dlopen/embedding Python

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Christopher Armstrong

    #1

    symbol not found involving dynlink/dlopen/embedding Python

    With the following situation, Numarray can't find Python's symbols.

    problematic-Python::
    Main dlopens Two
    Two dynlinks Python
    Python dlopens Numarray
    Numarray dynlinks Python

    I have another pure-C example that tries to mirror this, with::

    minimal-C::
    Main dlopen Two
    Two dynlink Middle
    Middle dlopen Three
    Three dynlink Middle

    and it works fine.

    AFAICT, I'm using the same dlopen flags that Python is.

    The minimal reproduction code is very small, but broken into several
    files (to emulate the different parts). It's browsable at
    http://twistedmatrix.com/users/radix/dynlink-problem , and
    downloadable at


    After doing some googling, I've found several people that look like
    they have similar problems. I even found one workaround involving
    LD_PRELOAD. if you LD_PRELOAD=pyth on2.3.so ./main, then the symbols
    are found.

    Does anyone have any idea on how I can solve this? I'd like to not
    hack CPython, and not have tie the build to a single machine.



    --
    Twisted | Christopher Armstrong: International Man of Twistery
    Radix | -- http://radix.twistedmatrix.com
    | Release Manager, Twisted Project
    \\\V/// | -- http://twistedmatrix.com
    |o O| | Founding Member, Hobart Hacking Society
    w----v----w-+ -- http://hackingsociety.org/chapters/hash
Working...