Python embedded - linking problem on Linux - trying again

Kim Petersen kp at kyborg.dk
Wed Aug 14 12:38:27 EDT 2002


Jarkko Torppa wrote:
> In article <3D5A7C7F.2030800 at kyborg.dk>, Kim Petersen wrote:
> 
>>>>ImportError: /usr/lib/python2.1/lib-dynload/timemodule.so: undefined 
>>>>symbol: PyExc_IOError
>>>
> ...
> 
>>When doing an `nm rmc85.so` it seems that the symbol is present:
>>
>>0006e930 B PyExc_FloatingPointError
>>0006e924 B PyExc_IOError
>>0006e94c B PyExc_ImportError
>>
>>(unless i'm mistaken - which easily could be the case - since i'm not a 
>>really low level hack ;-)
> 
> 
> Yep seems to be there, 
> 
> does
> :import exceptions
> :exceptions.IOError
> work ?

Yep - that works

> 
> If it works, I suspect that this could be something funny in the
> way dlopen works. Wonder if the dynlinking that python uses is
> somehow incompatible to the one that cobol uses ? But I have
> no idea how to tell.
> 

Hmm - i rather suspect that if i had linked it directly into the cobol 
then it would've worked eg. these two models:

Model 1:
runcobol -> pyrmc85.so (my module) -> timemodule.so (Where timemodule 
can't find symbols in pyrmc85.so)

Model 2:
cobol (linked with pyrmc85.o) -> timemodule.so

I suspect that the symbols from pyrmc85.so doesn't live in the global 
space where the timemodule looks for it ...

But unfortunatly i don't have the possibility of doing this - since the 
old linking model is deprecated in the new Cobol.... and isn't smart 
anyways - since we would have to compile this on every customers 
machine... (since they use runtime licences)

So i'll either have to stick to the "link every module needed into the 
.so" or hope that someone comes up with a solution :(

Thanks very much for your help though ;-)
-- 
Med Venlig Hilsen / Regards

Kim Petersen - Kyborg A/S
IT - Innovationshuset
Havnepladsen 2
7100 Vejle
Tlf. +4576408183 || Fax. +4576408188




More information about the Python-list mailing list