Linux: It there a way to edit a compiled shared library ?
specifically I am searching on how to add the DT_SYMBOLIC flag
on an already compiled binary shared library?
Here is why I am asking this:
our application is composed of
- our own libraries (static libXXX.a)
- some 3rd party libs (binary-only shared libraries libYYY.so)
Everything is fine with the application so far.
Now I have replaced our own static* libXXX.a libraries with shared libraries versions (libXXX.so).
Everything compiles and links fine.
But when I run the application now it starts up and does a lot of expected processing - and then it crashes somewhere on half the way. A gdb backtrace shows that the crash occurs in some of the 3rd party shared libraries.
I searched around on SOF and found an interesting article here.
The tip I am referring to is
... add the DT_SYMBOLIC flag to the dynamic section ...
Although I doubt that it would really help I think it might be worth a try.
Any ideas how I can add the DT_SYMBOLIC flag
on an already compiled/linked shared library ?
environment: debian lenny 64bit with g++ v4.2.4 and binutils v20.
EDIT: on solaris there is a program called elfedit
. Is there something similar for linux ?