symbol not found involving dynlink/dlopen/embedding Python [platform information]

Christopher Armstrong radeex at gmail.com
Sun Dec 19 11:12:30 CET 2004


Sorry, I forgot to put information about my platform.

Debian unstable on linux kernel 2.4.20, Debian's package of Python2.3.

gcc version 3.3.3
libc version 2.3.2

libc.so.6 output follows:::

radix at toshi ~% /lib/libc.so.6 
GNU C Library stable release version 2.3.2, by Roland McGrath et al.
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 3.3.4 (Debian 1:3.3.4-6).
Compiled on a Linux 2.6.0-test7 system on 2004-08-10.
Available extensions:
        GNU libio by Per Bothner
        crypt add-on version 2.1 by Michael Glad and others
        linuxthreads-0.10 by Xavier Leroy
        BIND-8.2.3-T5B
        libthread_db work sponsored by Alpha Processor Inc
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Thread-local storage support included.


On Sun, 19 Dec 2004 20:55:20 +1100, Christopher Armstrong
<radeex at gmail.com> wrote:
> 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
> http://twistedmatrix.com/users/radix/dynlink-problem/dynlink-problem.tar.gz
> 
> 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=python2.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
> 


-- 
  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



More information about the Python-list mailing list