Unix Programming - Re: dlopen: fatal: relocation error

This is Interesting: Free IT Magazines  
Home > Archive > Unix Programming > June 2007 > Re: dlopen: fatal: relocation error





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Re: dlopen: fatal: relocation error
Frank Cusack

2007-06-27, 7:19 pm

On Wed, 27 Jun 2007 13:34:10 -0700 shahan.am@gmail.com wrote:
> yes i did compile the .so with -fpic. but didn't work..
>
> this is the exact error message dlerror gives after dlopen fails.
>
> ld.so.1: rexserd: fatal: relocation error: file libmsat.d.so: symbol
> _Z11GetLastErrorv: referenced symbol not found
>
> where rexserd is my executable which invoke dlopen
>
> as far as i understand this means it can't find the reference to the
> GetLastError function isn't it ?


Yes. Sorry, I misread your initial report.

> but the GetLastError function (CError* GetLastError (void)) is defined
> in the executable and i even checked its symbols using nm -s rexserd |
> grep GetLastError .
>
> [475] | 80912| 40|FUNC |GLOB |0 |.text |
> _Z11GetLastErrorv
>
> this is the out put.


I thought you were dlopen()'ing the library containing GetLastError()?
This shows that that function is directly in rexserd. So I'm still
slightly confused.

> so what did actually went wrong..


I think this has problem has exceeded my knowledge. Google turns up

<http://docs.sun.com/app/docs/doc/80...j9vuquit?a=view>
<http://forum.java.sun.com/thread.js...ssageID=9264816>
<http://www.opensolaris.org/jive/thr...essageID=127598>

So, I would try 'ldd -d libmsat.so' which might give something useful,
and 'LD_NODIRECT=1 rexserd' which might help. It would also be
interesting to see exactly how you link libmsat.so.

Did you try linking against libgcc_s?

-frank
Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com