Right now I am porting an application from solaris to Linux.I am facing
a problem in opening a shared library with dlopen().The arguments
specified in solaris to this call are RTD_LAZY.It works fine in Solaris.

But in Linux dlopen() gives an error in loading the shared object saying that " undefined symbol:XXXXXX".

The linker options specified in solaris are " -u -G -dy -M mapfile" .
The linker options specified by me in Linux are "-u -symbolic -fPIC -shared --version-script mapfile"

Can you tell me in which case above dlopen() fails to load the shared object?

Are the options given to the linker sufficient to load a shared object or should I add somemore
options to the linker?

Can anyone help me out .