The limitations are as following:
- dlopen() limitations: The flags within the mode argument of dlopen()
will have the same impact irrespective of their values. This is because the
implementation relies on the current behavior of the Symbian OS loader
server, which does not support the usage of these flags. POSIX suggests returning
a handle to the global symbol object if the first argument to dlopen() is
NULL. However, the implementation does not return a handle to the global symbol
object: instead, it returns NULL in this scenario. This is due to the non-availability
of the global symbol object within the libdl library. Support for the export
of routines that use __attribute((constructor)) and __attribute((destructor))
function attributes is not provided. However, invocation of the constructors
of the global (static) objects, if any, will be performed prior to returning
from dlopen().
- dlsym limitations: POSIX suggests address lookup through symbol
names. However, the implementation uses ordinal numbers instead of symbol
names. Ordinal numbers of the exported functions could be obtained from the
DEF file of the associated DLL. Special handles to dlsym() are ignored, and
the users receive NULL as the return value of dlsym() in this scenario.
- Cannot support address lookup using names due to the current behavior
of the RLibrary API within Symbian OS.
Give
feedback of this article